tail head cat sleep
QR code linking to this page

manページ  — SEMGET

名称

semget – セマフォ ID を取得する

内容

ライブラリ

Standard C Library (libc, -lc)

書式

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

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

解説

keyflag の値に基づき、 semget() は新たに作成された、あるいは 以前から存在するセマフォ集合の識別子を返します。 キーはファイル名に類似しています。 キーは IPC オブジェクトに名前を付けるハンドルを提供します。 キーを指定する方法は 3 つあります:

新しく作成される IPC オブジェクトのモードは、次の定数の論理和 ( OR ) を flag 引数に設定することで決定されます:
SEM_R ユーザ用の読取りアクセス
SEM_A ユーザ用の書換えアクセス
( SEM_R>>3)
  グループ用の読取りアクセス
( SEM_A>>3)
  グループ用の書換えアクセス
( SEM_R>>6)
  その他用の読取りアクセス
( SEM_A>>6)
  その他用の書換えアクセス

新しいセマフォ集合が作成されている場合、 nsems を使用して、集合の中に入れる必要のあるセマフォの数を示します。 そうでない場合、 nsems を 0 として指定できます。

戻り値

semget() システムコールは、正常に完了するとセマフォ集合の識別子を返します。 そうでない場合は、-1 を返し、エラーを示すように errno を設定します。

エラー

semget() システムコールは次の場合に処理に失敗します:
[EACCES]
  アクセスパーミッション障害。
[EEXIST]
  IPC_CREAT および IPC_EXCL が指定されているのに、 key に対応するセマフォ集合が既に存在します。
[EINVAL]
  要求されたセマフォの数が、 システムが集合単位で課している最大値を超過しています。
[ENOSPC]
  利用可能なセマフォが不足しています。
[ENOSPC]
  カーネルが struct semid_ds を割り当てられませんでした。
[ENOENT]
  key に対応するセマフォ集合が見つからず、その際に IPC_CREAT が指定されていませんでした。

関連項目

semctl(2), semop(2), ftok(3)

SEMGET (2) September 12, 1995

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

I think Unix and snowflakes are the only two classes of objects in the universe in which no two instances ever match exactly.
— Noel Chiappa