SHMGET(2) FreeBSD システムコールマニュアル SHMGET(2)
名称
shmget − 共有メモリの識別子の取得 |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <machine/param.h> int |
shmget(key_t key, size_t size, int flag); |
解説 |
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 は、新しいセグメントのバ イト単位のサイズを表わします。セグメントのサイズは、カーネルに便利なよう にある倍数に切り上げられることがあります (すなわちページサイズ)。 戻り値 |
処理が正常に完了すると、 shmget() は共有メモリセグメントの正整数の識別子 を返します。そうでない場合は -1 が返され、エラーを示すために errno が設定 されます。 |
エラー
以下の場合、 shmget() システムコールは処理を失敗します: |
[EINVAL]
指定したサイズが、既存セグメントのサイズより大きいで す。指定したサイズが、システムの最低値より小さいか、最 大値より大きいです。 [ENOENT] [ENOSPC] [EEXIST] 関連項目 |
shmat(2), shmctl(2), shmdt(2), ftok(3) FreeBSD 10.0 July 3, 1995 FreeBSD 10.0 |