sem_open、sem_close、sem_unlink
来源:互联网 发布:淘宝达人好做吗 编辑:程序博客网 时间:2024/06/15 23:32
UNP2 P180
sem_t *sem_open(const char *name, int oflag,..,/*mode_t mode,unsigned int value*/) :打开有名信号量
1.当打开一个一定存在的有名信号量时,ofalg设置为0.
int sem_close(sem_t *sem):关闭有名信号量
2.一个进程终止时,内核对其上仍打开的所有有名信号量自动执行关闭操作。不论进程是自愿还是非自愿终止。
3.关闭一个信号量并没有将他从系统中删除。POSIX 有名信号量是随内核持续的:即使当前没有进程打开着某个信号量,他的值仍保持。
int sem_unlink(const char *name):从系统中删除有名信号量
4.每个信号量有一个引用计数器记录打开的次数,当引用计数大于0时,name 就能从文件系统中删除,然而其信号量的析构(不同于将他的名字从文件系统中删除)却要等到最后一个sem_close发生时为止.
sem_t *sem;int val;if((sem=sem_open(SEM_NAME,OFLAG,MODE,SEM_VALUE))==SEM_FAILED){perror("sem_open failed");exit(EXIT_FAILURE);}if(-1==sem_close(sem)){perror("sem_close failed");exit(EXIT_FAILURE);}if(-1==sem_getvalue(sem,&val)) //sem_close() 后sem_getvalue() 错误:segmentation fault{perror("sem_getvalue failed");exit(EXIT_FAILURE);}
sem_t *sem;int val;if((sem=sem_open(SEM_NAME,OFLAG,MODE,SEM_VALUE))==SEM_FAILED){perror("sem_open failed");exit(EXIT_FAILURE);}if(-1==sem_unlink(SEM_NAME)){perror("sem_unlink failed");exit(EXIT_FAILURE);}if(-1==sem_getvalue(sem,&val)) //sem_unlink() 后sem_getvalue()可以获取到信号量的值(此时,name删除,信号量并未析构(上述第4)){perror("sem_getvalue failed");exit(EXIT_FAILURE);}if(-1==sem_close(sem)){perror("sem_close failed");exit(EXIT_FAILURE);}
0 0
- sem_open、sem_close、sem_unlink
- POSIX semaphore: sem_open, sem_close, sem_post, sem_wait
- POSIX semaphore: sem_open, sem_close, sem_post, sem_wait
- POSIX semaphore: sem_open, sem_close, sem_post, sem_wait
- sem_open()
- 关于sem_unlink什么时候删除信号量
- sem_unlink的行为不合文档说明
- sem_open中文件名参数使用说明
- sem_open 和 errno的使用问题
- sem_open出现段错误 名字问题
- sem_open No such file or directory
- sem_open can't open a name with directory
- 加了semaphore.h ,还报错undefined reference to sem_open
- 加了semaphore.h ,还报错undefined reference to sem_open
- linux Qt5.9.1 测试有名信号灯(sem_open)
- Linux有名信号量的创建(sem_open中name参数构造)
- python multiprocessing ImportError: This platform lacks a functioning sem_open implementation问题 解决方案
- 有名信号量sem_open和内存信号量sem_init创建信号量的区别
- 链表常见题总结一
- Linux---Linux限制网络带宽的占用
- hdu 5818 Joint Stacks 优先队列(多校)
- css3选择器总结
- java设计模式_状态模式
- sem_open、sem_close、sem_unlink
- 工厂模式
- svn 设置用户组
- 快速幂
- 提前定义及对象构造顺序
- 指针和引用的区别
- 聊天机器人中对话模板的高效匹配方法
- 基本选择器使用一
- Mysql在大型网站的应用架构演变