为什么linux下有两种semaphore?【结贴】
本帖最后由 ejeker 于 2013-07-23 10:45 编辑<semaphore.h>--------------------- 信号量
<sys/sem.h>-------也是信号量。
这两个都是信号量,类型和用法还不太一样。到底哪个信号量是更标准的那种呢?
linux下面为什么要搞两套功能相同但又互不兼容的东西?
而且我还发现,消息队列也有两套东西:
<mqueue.h> ---------------------- 消息队列
<sys/msg.h>这个也是
非常的不解。 回复 1# ejeker
这是历史原因造成的。一个是System V IPC的,一个是POSIX IPC的。System V IPC出现的更早,而后者是POSIX的一部分。
myworkstation 发表于 2013-07-22 17:32 static/image/common/back.gif
回复 1# ejeker
这是历史原因造成的。一个是System V IPC的,一个是POSIX IPC的。System V IPC出现 ...
你的意思是sys/下面的文件都是System V规定的东西,而没有sys前缀的都是POSIX的内容? 回复 3# ejeker
跟头文件的位置没有关系。 myworkstation 发表于 2013-07-22 19:58 static/image/common/back.gif
回复 3# ejeker
那到底哪个是哪个呢? 回复 5# ejeker
你可能没理解我的意思,System V IPC has effectively been replaced by POSIX IPC, but is maintained to support older applications. 没有规定System V IPC的信号量必须在<sys/sem.h>这个头文件中,也就是部分系统完全可以支持System V IPC的信号量但头文件放在别的位置。就你目前的系统上来讲<sys/sem.h>是指的System V IPC的信号量。
myworkstation 发表于 2013-07-23 10:21 static/image/common/back.gif
回复 5# ejeker
多谢你的回答 system v和posix,可以读一下unix网络编程卷2详细了解区别。 linux_c_py_php 发表于 2013-07-23 17:56 static/image/common/back.gif
system v和posix,可以读一下unix网络编程卷2详细了解区别。
一定拜读!
页:
[1]