Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么sem_open在iOS中返回无效指针?_Ios_Ios Simulator_Semaphore_Errno - Fatal编程技术网

为什么sem_open在iOS中返回无效指针?

为什么sem_open在iOS中返回无效指针?,ios,ios-simulator,semaphore,errno,Ios,Ios Simulator,Semaphore,Errno,我已经陷入这一困境很长一段时间了。有一个在某些linux版本上工作的遗留代码(C)。我正在尝试将其移植到iOS。我正在iPhone 6.1模拟器上运行该应用程序 我尝试使用信号量,打开一个作为:- sem_t * ptr_sem = NULL; ptr_sem = sem_open("robin", O_CREAT , S_IXUSR | S_IRGRP, 0); if (ptr_sem == SEM_FAILED) { printf("\nerror number:%d", err

我已经陷入这一困境很长一段时间了。有一个在某些linux版本上工作的遗留代码(C)。我正在尝试将其移植到iOS。我正在iPhone 6.1模拟器上运行该应用程序

我尝试使用信号量,打开一个作为:-

sem_t * ptr_sem = NULL;

ptr_sem = sem_open("robin", O_CREAT , S_IXUSR | S_IRGRP, 0);

if (ptr_sem == SEM_FAILED) {
    printf("\nerror number:%d", errno);

    return -1;
} else {
    printf("\n semaphore creation errno: %d", errno);
    return 0;
}
此代码每次运行时都返回0。值得注意的是,对于每个新的信号量名称,errno第一次为22[EINVAL],对于所有后续的sem_open尝试[即使在关闭模拟器之后],errno设置为13[EACCES]。此外,返回的指针的返回值是无效的内存地址[0x000..5]。我已经检查了上面的一些类似问题——在打开之前尝试取消链接,但对我来说也不起作用

有人能告诉我上面的代码有什么问题吗