shanshanpt的专栏

新博客地址: okyes.me

Linux 多线程编程( POSIX )( 三 )------->信号灯

Attention:代码区链接


一.       POSIX有名信号灯


 
  所谓有名就是给一个类似句柄的key。   
   
1.创建并初始化有名信号灯
   函数:sem_open
    #include<semaphore.h>
    sem_t *sem_open( const char *name, int oflag, mode_t mode, unsigned intval );
    参数:
         name:信号灯的名称
         oflag:选择创建或者打开一个现有的信号灯
         mode:权限位(进程中已经讲过,差不多)
         val:信号灯的初始值
         
   成功时返回指向信号灯的指针,出错时为SEM_FAILED      
   
   oflag可以取值为:0,O_CREAT(创建),O_CREAT | O_EXCL(没有指定就创建)
   
   if  oflag指定了参数有O_CREAT,那么后面的mode和val参数是必须的!!!
   注意:val的值大小不能超过SEM_VALUE_MAX < 32767。
   
   一般有两种信号灯:   互斥信号灯(二值),所以val = 1
                              计数信号灯,一般val > 1
                        
    注意参数      O_CREAT与O_CREAT | O_EXCL的区别
   >>>>>>>:      前者的意思是:   如果所需信号灯尚未存在,那就创建并初始化它
                                              所以即使是已经存在此信号量,指定此参数也不会报错。
                      后者则不一样,其实是保证了唯一性,也就是if已经有了,那么就会报错。
   
2.sem_close:关闭有名信号灯   
    #include<semaphore.h>
    intsem_close( sem_t * sem); 
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shanshanpt/article/details/7376311
个人分类: Linux 高级编程
想对作者说点什么? 我来说一句

Posix多线程编程学习笔记

2012年08月17日 627KB 下载

POSIX多线程程序设计.pdf

2012年12月02日 13.79MB 下载

Posix多线程编程

2012年11月27日 460KB 下载

POSIX多线程程序设计中文版.pdf

2009年10月13日 9.21MB 下载

没有更多推荐了,返回首页

不良信息举报

Linux 多线程编程( POSIX )( 三 )------->信号灯

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭