msgget サブルーチン
目的
メッセージ・キュー ID を取得します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <sys/msg.h>
説明
メッセージ取得 サブルーチンは、指定された キー パラメーターに関連したメッセージ・キュー ID を戻します。
以下のいずれかの条件が該当する場合、 キー パラメーターの値に対してメッセージ・キュー ID、関連メッセージ・キュー、およびデータ構造が作成されます。
- キー パラメーターは、 _ 翻訳不要 _IPC_PRIVATE 値と等しくなります。
- キー パラメーターにメッセージ・キュー ID がまだ関連付けられておらず、 _ 翻訳不要 _IPC_CREAT 値が設定されている。
作成時に、新しいメッセージ・キュー ID に関連付けられたデータ構造は、以下のように初期化されます。
- msg_perm.cuid,msg_perm.uid,msg_perm.cgidおよびmsg_perm.gidフィールドは、呼び出しプロセスの有効ユーザー ID と有効グループ ID にそれぞれ等しく設定されます。
- 以下の下位 9 ビット。msg_perm.modeフィールドは、 MessageFlag パラメーターの下位 9 ビットに等しく設定されます。
- msg_qnum,msg_lspid,msg_lrpid,msg_stimeおよびmsg_rtimeフィールドは 0 に設定されます。
- msg_ctimeフィールドは現在時刻と等しい値に設定されます。
- msg_qbytesフィールドはシステムしきい値と等しい値に設定されます。
メッセージ取得 サブルーチンは、以下のアクションを実行します。
- msgget サブルーチンは、 Key パラメーターを持つキューを ( MessageFlag パラメーターの値に応じて) 検索または作成します。
- メッセージ取得 サブルーチンは、キュー・ヘッダーの ID を呼び出し元に戻します。
メッセージ・サイズとキュー内のメッセージ数の制限については、 プログラミングの一般概念: プログラムの作成とデバッグを参照してください。
パラメーター
| 項目 | 説明 |
|---|---|
| キー | FTOK サブルーチン (または同様のアルゴリズム) によって構成される値 _ 翻訳不要 _IPC_PRIVATE またはプロセス間通信 (IPC) キーのいずれかを指定します。 |
| MessageFlag | 以下の 1 つ以上の値を論理 OR することによって構成されます。
S_I で始まる値は sys/mode.h ファイルに定義され、ファイルに適用されるアクセス権のサブセットです。 |
戻り値
正常終了すると、 メッセージ取得 サブルーチンはメッセージ・キュー ID を戻します。 そうでない場合は-1が返され、エラーを示すerrnoグローバル変数が設定される。
エラー・コード
以下のいずれかの条件に該当する場合、 メッセージ取得 サブルーチンは失敗します。
| 項目 | 説明 |
|---|---|
| EACCES | Key パラメーターにはメッセージ・キュー ID が存在しますが、 MessageFlag パラメーターの下位 9 ビットによって指定された操作許可が付与されていません。 |
| ENOENT | キー パラメーターのメッセージ・キュー ID が存在せず、 _ 翻訳不要 _IPC_CREAT 値が設定されていません。 |
| ENOSPC | メッセージ・キュー ID が作成されますが、システム全体で許可されるメッセージ・キュー ID の最大数に対するシステムの制限を超えます。 |
| EEXIST | キー パラメーターのメッセージ・キュー ID が存在し、 _ 翻訳不要 _IPC_CREAT と _ 翻訳不要 _IPC_EXCL の両方の値が設定されている。 |