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.

The number of UNIX installations has grown to 10, with more expected.
— UNIX Programming Manual, 1972