消息队列,信号量,内存共享,这几个都是一样的原理。,只不过信号量分为有名与无名
无名使用 <semaphore.h>,
有名信号量<sys/sem.h>
无名信号量不能用进程间通信,
//无名与有名的区别,有名需要KEY值与IPC标识
所以sem_init的第二个参数必须为0,,,,
你说的应该是Windows开发里面的一个HANDLE,对应一个Semaphore信号量,使用CreateSemaphore可以返回一个Handle,这个Handle经常被命名为hSem编译时加上参数:-lpthread要看报错的阶段,是在编译还是链接阶段.
如果编译时函数没有找到,那是头文件的问题,如果链接时未定义引用,那是c库的问题.
如果你的头文件都正常包含了,那可能你的c库没有使能semaphore的支持.
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)