gpt4 book ai didi

不允许 iOS mkfifo() 操作

转载 作者:行者123 更新时间:2023-11-28 23:39:25 25 4
gpt4 key购买 nike

我有以下代码,我从 Xcode 中的 Swift 主程序调用它,例如在虚拟 iPhone 的模拟器中运行它时,它可以工作。它创建/tmp/MYFIFO

int32_t init_udpC(void) {

static char *filename="/tmp/MYFIFO";

umask(0);
unlink(filename);
if((mkfifo(filename, 0666)) == -1){
perror("mkfifo");
exit(2);
}
if((fd=open("/tmp/MYFIFO",O_RDWR|O_APPEND)) == -1) {
perror("open");
exit(2);
}
return fd;
}

在物理设备上运行代码失败

mkfifo:不允许操作

最佳答案

这是因为 iOS 沙盒。在 iOS 上,您的应用不允许访问 /tmp/。它在模拟器中工作,因为你在 macOS 上运行,这没问题。

您需要使用允许您的应用访问的路径。一种可能是将路径替换为

const char *filename=[[NSTemporaryDirectory() stringByAppendingPathComponent:@"MYFIFO"] UTF8String];

还有其他有效路径——关键是您必须被允许访问该目录。

关于不允许 iOS mkfifo() 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53934274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com