semget

semget,是獲取與某個鍵關聯的信號量集標識。

基本介紹

  • 中文名:semget
  • 函式原型:int 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被設定為當前時間

用法

#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:超出系統限制

相關詞條

熱門詞條

聯絡我們