进程间通讯 (3)-信号量相关函数

本文介绍了进程间通讯中的信号量相关函数,包括semget用于创建和获取信号量集,semctl用于控制信号量信息,以及semop用于改变信号量值以管理资源使用权。详细讲解了各个函数的原型和返回值。
摘要由CSDN通过智能技术生成

信号量相关函数分析:
1.semget()信号创建函数,获取与某个键关联的信号量集标识

原型:int semget(key_t key,int nsems,int semflg);

   key:所创建或打开信号量集的键值。
   nsems:创建的信号量集中的信号量的个数,该参数只在创建信号量集时有效。
   semflg:调用函数的操作类型,也可用于设置信号量集的访问权限,两者通过or表示

返回值说明:

     如果成功,则返回信号量集的IPC标识符。

     如果失败,则返回-1,errno被设定成以下的某个值
     EACCES:没有访问该信号量集的权限
     EEXIST:信号量集已经存在,无法创建
     EINVAL:参数nsems的值小于0或者大于该信号量集的限    制;或者是该key关联的信号量集已存在,并且nsems大于该信号量集的信号量数
     ENOENT:信号量集不存在,同时没有使用IPC_CREAT
     ENOMEM :没有足够的内存创建新的信号量集
     ENOSPC:超出系统限制
  1. semctl ();//控制信号量的信息。

原型:int semctl(int _semid ,int _semnum,int _cmd ……)

 semid   信号量的标志码(ID),也就是semget()函数的返回值;
 semnum,  操作信号在信号集中的编号。从0开始。
 cmd    命令,表示要进行的操作。

下面列出的这些命令来源于百度,c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值