tail head cat sleep
QR code linking to this page

manページ  — SHMGET

名称

shmget – 共有メモリの識別子の取得

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <machine/param.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>

int
shmget(key_t key, size_t size, int flag);

解説

shmget() は、 keyflag の値に従って、新しく作成した共有メモリセグメント または既存の共有メモリセグメントの識別子を戻します。 キーはファイル名に似たもので、IPC オブジェクトを 指定するハンドルを提供するものです。 キーの指定方法には 3 つ方法があります:

新しく作成された IPC オブジェクトのモードは、 flag 引数に渡す以下の定数の論理和 ( OR) で決まります:
SHM_R ユーザ用の読取りアクセス
SHM_W ユーザ用の書込みアクセス
( SHM_R>>3)
  グループ用の読取りアクセス
( SHM_W>>3)
  グループ用の書込みアクセス
( SHM_R>>6)
  その他用の読取りアクセス
( SHM_W>>6)
  その他用の書込みアクセス

新しい共有メモリセグメントを作成する場合、 size は、新しいセグメントのバイト単位のサイズを表わします。 セグメントのサイズは、カーネルに便利なようにある倍数に 切り上げられることがあります (すなわちページサイズ)。

戻り値

処理が正常に完了すると、 shmget() は共有メモリセグメントの正整数の識別子を返します。 そうでない場合は -1 が返され、エラーを示すために errno が設定されます。

エラー

以下の場合、 shmget() システムコールは処理を失敗します:
[EINVAL]
  指定したサイズが、既存セグメントのサイズより大きいです。 指定したサイズが、システムの最低値より小さいか、最大値より大きいです。
[ENOENT]
  key と一致する共有メモリセグメントがなく、IPC_CREAT が指定されていません。
[ENOSPC]
  要求を満たす十分なメモリを、カーネルが割り当てられません。
[EEXIST]
  IPC_CREAT と IPC_EXCL が指定され、 key に対応する共有メモリセグメントがすでに存在します。

関連項目

shmat(2), shmctl(2), shmdt(2), ftok(3)

SHMGET (2) July 3, 1995

tail head cat sleep
QR code linking to this page


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