曲径通幽论坛

标题: semget | 创建或打开信号集 [打印本页]

作者: beyes    时间: 2009-9-4 14:51
标题: semget | 创建或打开信号集
Linux 下使用系统函数 semget 创建或打开信号集。这个函数定义在头文件<sys/sem.h> 中,函数原型如下:
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
int semget(key_t key, int nsems, int semflg);

第 1 个参数 key 是经由 ftok() 得到的键值;
第 2 个参数 nsems 指明要创建的信号集包含的信号个数,如果只是打开信号集,则将 nsems 设置为 0 即可;
第 3 个参数 semflg 为操作标志,可以取如下值:
如果 semget() 创建了新的信号量集,则信号量中将有 nsems 个信号量,并且与该信号量集关联的 semid_ds 结构如下初始化:
注意,semget() 并没有初始化信号量集中的信号量的实际值,要初始化信号量的实际值必须改用 semctl() 函数。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2