複製鏈接
請複製以下鏈接發送給好友

semget

鎖定
semget,是獲取與某個鍵關聯的信號量集標識。
中文名
semget
函數原型
int semget()
功能描述
獲取與某個鍵關聯的信號量集標識
意    義
函數

目錄

semget功能描述

函數原型:int semget(key_t key,int nsems,int semflg);
功能描述
信號量集被建立的情況有兩種:
1.如果鍵的值是IPC_PRIVATE。
2.或者鍵的值不是IPC_PRIVATE,並且鍵所對應的信號量集不存在,同時標誌中指定IPC_CREAT。
當調用semget創建一個信號量時,他的相應的semid_ds結構被初始化。ipc_perm中各個量被設置為相應
值:
sem_nsems被設置為nsems所示的值;
sem_otime被設置為0;
sem_ctime被設置為當前時間

semget用法

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
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:超出系統限制