信号量
semget创建并打开信号量集
函 数 详 情 |
头文件: #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> 函数原型:int semget(key_t key, int nsems, int semflg); 函数功能:创建并打开信号量集,信号量的值默认值为0 函数参数: key_t key : 信号量的键值 可通过ftok生成一个键值,也可以使用现有的信号量键值 int nsems : 创建信号量集中的信号量数目--信号量集合,信号量的个数值,如果引用一个现存的信号量集合,则将nsems 指定为0。--也可以为当信号量集里面信号量的数量 int semflg : 读写权限和打开模式(通过位运算符进行拼接) IPC_CREAT:用于创建信号量,如果通过键值生成的信号量存在就直接使用,如果没有该信号量就创建。 IPC_EXCL --- 与IPC_CREAT | IPC_EXCL 用于检测信号量集是否存在 返回值: 成功:信号量集ID 失败:-1 注意: 第二个参数如果已经创建信号量集,这个参数要给0,也可以给小于或者等于需要打开的这个信号量集的信号量个数。 |
示 例 |
int semid; //调用semget函数 semid=semget(key ,6,IPC_CREAT | IPC_EXCL); printf("semget success semid =%d\r\n",semid); |