首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不允许iOS mkfifo()操作

不允许iOS mkfifo()操作
EN

Stack Overflow用户
提问于 2018-12-26 23:59:45
回答 1查看 737关注 0票数 0

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

代码语言:javascript
复制
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: Operation not permitted

EN

回答 1

Stack Overflow用户

发布于 2018-12-27 03:27:07

这是因为iOS沙箱。在iOS上,你的应用程序不允许访问/tmp/。它在模拟器中工作,因为您在macOS上运行,在那里它是正常的。

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

代码语言:javascript
复制
const char *filename=[[NSTemporaryDirectory() stringByAppendingPathComponent:@"MYFIFO"] UTF8String];

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53934274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档