1. 相关概念
信号灯集用于在进程间解决同步问题,本质是一个计数器,主要执行PV操作,
P操作是减操作,V操作是加操作,当信号量的值为0是,P操作会阻塞
注意:IPC中的信号灯集PV操作每次加减的值可以是大于1的
2. 相关函数
1 -- semget( )
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
int semget(key_t key, int nsems, int semflg);
功能:
打开或者创建一个信号灯集
参数:
key:
键值,唯一的键值确定唯一的信号灯集
nsems:
信号量的个数,至少1个
semflg:
标志位
一般设置为 IPC_CREAT | 0777
返回值:
成功:
信号灯集的id
失败:
-1
2 -- semctl( )
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
int semctl(