shmget(2) FreeBSD 一般コマンドマニュアル

shmget

前のページ 上に戻る 次のページ

shmget




書式

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

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


解説

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

     o   IPC_PRIVATE を指定すると新しい IPC オブジェクトが作成されます。

     o   整定数を指定できます。 key に対応する IPC オブジェクトが指定されてお
         らず、IPC_CREAT ビットが flag で設定されている場合は、新しい IPC オブ
         ジェクトが作成されます。

     o   ftok() を使用し、パス名からキーを作成できます。 ftok(3) を参照してく
         ださい。

     新しく作成された IPC オブジェクトのモードは、 flag パラメータに渡す以下の
     定数の論理和で決まります。

     SHM_R         ユーザ用の読取りアクセス

     SHM_W         ユーザ用の書込みアクセス

     (SHM_R>>3)    グループ用の読取りアクセス

     (SHM_W>>3)    グループ用の書込みアクセス

     (SHM_R>>6)    その他用の読取りアクセス

     (SHM_W>>6)    その他用の書込みアクセス

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


戻り値

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


エラー

     以下の場合、 shmget() は処理を失敗します。

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

FreeBSD 4.4                      July 3, 1995                      FreeBSD 4.4

ABELNET VPSサービス