"shm_open" 在 swift 中给出 "Variadic function is unavailable"

"shm_open" Gives "Variadic function is unavailable" in swift

swift是否支持shm_open

我可以使用 shm_unlinkshm_open 不存在。

shm_open("/myregion", O_CREAT | O_RDWR)

如果 Swift 不支持 shm_open 是否有等效的方法来创建用于映射的共享内存文件描述符?

我已经设法在 C 中创建了共享内存,但在 Swift 中仍然没有。

原来 shm_open 工作正常,只是 swift 不能使用 Variadic C 函数。

我通过使用函数创建一个新的 c 文件解决了这个问题:

int shmopen(const char *path) {
    return shm_open(path, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
}

将函数放在“Project-Bridging-Header.h”文件中:

int shmopen(const char *path);

调用函数 swift:

var fd = shmopen("/myregion")
print(fd)

现在一切正常。