shmget()
は、
key
と
flag
の値に従って、新しく作成した共有メモリセグメント
または既存の共有メモリセグメントの識別子を戻します。
キーはファイル名に似たもので、IPC オブジェクトを
指定するハンドルを提供するものです。
キーの指定方法には 3 つ方法があります:
- IPC_PRIVATE を指定すると新しい IPC オブジェクトが作成されます。
- 整定数を指定できます。
key
に対応する IPC オブジェクトが指定されておらず、IPC_CREAT ビットが
flag
で設定されている場合は、新しい IPC オブジェクトが作成されます。
- ftok(3)
を使用し、パス名からキーを作成できます。
新しく作成された IPC オブジェクトのモードは、
flag
引数に渡す以下の定数の論理和
( OR)
で決まります:
SHM_R
|
ユーザ用の読取りアクセス
|
SHM_W
|
ユーザ用の書込みアクセス
|
( SHM_R>>3)
|
|
グループ用の読取りアクセス
|
( SHM_W>>3)
|
|
グループ用の書込みアクセス
|
( SHM_R>>6)
|
|
その他用の読取りアクセス
|
( SHM_W>>6)
|
|
その他用の書込みアクセス
|
新しい共有メモリセグメントを作成する場合、
size
は、新しいセグメントのバイト単位のサイズを表わします。
セグメントのサイズは、カーネルに便利なようにある倍数に
切り上げられることがあります (すなわちページサイズ)。