我是靠谱客的博主 听话自行车,最近开发中收集的这篇文章主要介绍macOS下信号量semaphore部分函数失效的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

环境: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部分函数失效的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部