Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ msgget(2V) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

msgctl(2V)

msgop(2V)

MSGGET(2V)  —  NEWS-OS Programmer’s Manual

名称

msgget − メッセージキューの獲得

形式

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>

int msgget(key, msgflg)
key_t key;
int msgflg;

解説

msgget は key に対応する メッセージキュー識別子を 返します。

以下の記述のいずれかに 該当する場合、 メッセージキュー識別子、 メッセージキュー、 およびデータ構造体 ( intro(2) 参照) が key に対して作成されます。

key が IPC_PRIVATE と同等。

key はまだメッセージキュー 識別子を持っていない、 また ( msgflg & IPC_CREAT) が“真”でない。

作成時、 新しいメッセージキュー 識別子のデータ構造体は 以下のように設定されます。

msg_perm.cuid、msg_perm.uid msg_perm.cgid、 および msg_perm.gid がそれぞれ呼び出しプロセス の有効ユーザ ID および有効グループ に設定される。

msg_perm.mode の下位 9 ビットが msgflg の下位 9 ビットに設定される。

msg_qnum、msg_lspid、msg_lrpid msg_stime、およびmsg_rtime が 0 となる。

msg_ctime が現在時刻に設定される。

msg_qbytes がシステムの限界値に設定される。

以下に示すものが 1 つでも該当する場合、 msgget の実行に失敗します。

­[EACCES] key に対するメッセージキュー 識別子が存在するが、 msgflg の下位 9 ビットで指定される 動作許可 ( intro(2) 参照) が認められない。

­[ENOENT] key に関するメッセージキュー識別子 が存在せず、また (msgflg & IPC_CREAT) が偽。

­[ENOSPC] メッセージキュー識別子 が作成されようとしたが、 メッセージキュー識別子 の数がシステム全体の最大数を 超えている。

­[EEXIST] key に関するメッセージキュー識別子が 存在するが ((msgflg & IPC_CREAT) & ( msgflg & IPC_EXCL)) が真。

リターン値

コマンドの実行に成功すると、 正の整数、 すなわちメッセージキュー識別子 が返されます。 失敗すると、−1 が返され、 errno が返されます。

関連事項

intro(2), msgctl(2V), msgop(2V). 

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026