ejeker 发表于 2013-07-22 17:00

为什么linux下有两种semaphore?【结贴】

本帖最后由 ejeker 于 2013-07-23 10:45 编辑

<semaphore.h>---------------------   信号量
<sys/sem.h>-------也是信号量。

这两个都是信号量,类型和用法还不太一样。到底哪个信号量是更标准的那种呢?
linux下面为什么要搞两套功能相同但又互不兼容的东西?

而且我还发现,消息队列也有两套东西:
<mqueue.h>    ----------------------   消息队列
<sys/msg.h>这个也是

非常的不解。

myworkstation 发表于 2013-07-22 17:32

回复 1# ejeker

 这是历史原因造成的。一个是System V IPC的,一个是POSIX IPC的。System V IPC出现的更早,而后者是POSIX的一部分。


ejeker 发表于 2013-07-22 18:06

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的内容?

myworkstation 发表于 2013-07-22 19:58

回复 3# ejeker


    跟头文件的位置没有关系。

ejeker 发表于 2013-07-23 09:36

myworkstation 发表于 2013-07-22 19:58 static/image/common/back.gif
回复 3# ejeker




那到底哪个是哪个呢?

myworkstation 发表于 2013-07-23 10:21

回复 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的信号量。

ejeker 发表于 2013-07-23 10:45

myworkstation 发表于 2013-07-23 10:21 static/image/common/back.gif
回复 5# ejeker



多谢你的回答

linux_c_py_php 发表于 2013-07-23 17:56

system v和posix,可以读一下unix网络编程卷2详细了解区别。

ejeker 发表于 2013-07-24 08:49

linux_c_py_php 发表于 2013-07-23 17:56 static/image/common/back.gif
system v和posix,可以读一下unix网络编程卷2详细了解区别。

一定拜读!
页: [1]
查看完整版本: 为什么linux下有两种semaphore?【结贴】