macOS下信号量semaphore部分函数失效的问题

来源:互联网 发布:苹果电脑直播音效软件 编辑:程序博客网 时间:2024/06/14 08:13

环境:macOS,使用XCode编写c程序调用semaphore.h

问题:sem_wait()总是失效(未按预期执行)

当时是期末写操作系统的作业,要用到信号量,于是引入semaphore头文件,调用sem_open打开信号量,使用的时候用sem_wait()等待资源,然而这句代码无论如何也无法生效。。

sem_wait(buffer1Empty);

搜索了很多文章都是无解,最后偶然在stackoverflow的一个评论下找到了解决方法:

信号量的名字一定要以 / 为开头

比如这样:

if((buffer1Empty=sem_open("/buffer1Empty", O_RDWR | O_CREAT,FILE_MODE,CAPACITY))==SEM_FAILED)        printf("ERROR 1!\n");
0 0
原创粉丝点击