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.

If you have any trouble sounding condescending, find a Unix user to show you how it's done.
— Scott Adams