概述
环境: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");
最后
以上就是听话自行车为你收集整理的macOS下信号量semaphore部分函数失效的问题的全部内容,希望文章能够帮你解决macOS下信号量semaphore部分函数失效的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复