semget-获取System V信号量集标识符

头文件

	#include <sys / types.h> 
   #include <sys / ipc.h> 
   #include <sys / sem.h>

函数

   int semget(key_t key ,int nsems ,int semflg );		

关键标识符key:所创建或打开信号量集的键值, key 值可用fork()来创建。

nsems:创建的信号量集中的信号量的个数I(资源是三把伞, 但信号量的个数应设为1),该参数只在创建信号量集时有效。

semflg:调用函数的操作类型,也可用于设置信号量集的访问权限,两者通过or表示.	

有IPC_CREAT,IPC_EXCL。

IPC_CREAT如果信号量不存在,则创建一个信号量,否则获取。

IPC_EXCL只有信号量不存在的时候,新的信号量才建立,否则就产生错误.

返回值

成功返回信号量的标识码ID。失败返回-1;

例子

 mykey = ftok("key", 1000);
    if ((sem_id = semget(mykey, 1, IPC_CREAT | 0666)) == -1) {
        perror("semget failed");
        exit(1);
    }