免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2168 | 回复: 2
打印 上一主题 下一主题

posix的信号量可以同步两个进程的读写吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-13 16:29 |只看该作者 |倒序浏览
systemv的信号量是可以同步的,
我就不知道posix的是否也可以同步。


看了别的程序例子,posix好像都是用于多线程

论坛徽章:
0
2 [报告]
发表于 2009-05-14 12:42 |只看该作者

回复 #1 nanren0542 的帖子

man sem_init:

int sem_init(sem_t *sem, int pshared, unsigned value);
......
If  the  pshared  argument  has  a  non-zero  value,  then the semaphore is shared between processes; in this case, any process that can access the semaphore sem can use sem for performing sem_wait(), sem_trywait(), sem_post(), and sem_destroy() operations.

论坛徽章:
0
3 [报告]
发表于 2009-05-19 00:01 |只看该作者
posix 信号量按照实现分为两种:
1) named semaphore (命名信号量),需要用 sem_open 函数创建和打开。由于有路径名标识,每个进程都可以看到该路径名,自然可以用于进程间同步。
2) memory-based semaphore(基于内存的信号量),需要用户自己定义一个 sem_t 对象,并用 sem_init 进行初始化。默认用于线程进同步。若用于进程间同步,需具备两个条件:sem_init 的第二个参数非 0, 并且 sem_t 对象处在共享内存中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP