Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

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

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

msgget(2V)

msgop(2V)

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

名称

msgctl − メッセージの制御

形式

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

int msgctl (msqid, cmd, buf)
int msqid, cmd;
struct msqid_ds ∗buf;

解説

msgctl は各種メッセージの制御動作を cmd によって行います。 以下の cmd が指定可能。

IPC_STAT msqid に関連するデータ構造体の各メンバ のカレント値を buf によって示す構造体に設定 します。 この構造体の内容は intro(2) で指定されます。 {READ}

IPC_SET msqid に関連するデータ構造体の以下の メンバの値を buf で示す構造体の対応する値に設定します。

msg_perm.uid
msg_perm.gid
msg_perm.mode /∗ 下位9ビットのみ ∗/
msg_qbytes

この cmd は スーパーユーザの ID または msqid に関連するデータ構造体の msg_perm.uid の値と同じ有効ユーザ ID を持つ プロセスによってのみ 実行できます。

IPC_RMID msqid で指定される メッセージキュー識別子を システムから 取り除き、 メッセージキューと 関連するデータ構造体を 破壊します。 この cmd は スーパーユーザ のユーザ ID または msqid に関するデータ構造体の msg_perm.uid の値を持つ プロセスによってのみ 実行します。

msgctl は以下の 1 つでも該当する場合、 失敗します。

­[EINVAL]
msqid は有効なメッセージキュー識別子 ではない。

­[EINVAL] cmd は有効なコマンドではない。

­[EACCES] mmd が IPC_STAT で、読み出し動作が呼びしたプロセス に対して許されていない。 (intro(2) 参照)

­[EPERM] cmd が IPC_RMID または IPC_SET で、 呼び出しプロセス の有効ユーザ ID が スーパーユーザの ユーザ ID でなく、 また msqid に関する データ構造体の msg_perm.uid の値とも同じではない。

­[EPERM] cmd が IPC_SET であり、 msg_qbytes の値を増加させようとしたが、 呼び出しプロセス の有効ユーザ ID が スーパーユーザのものと異なる。

­[EFAULT] buf が不正アドレスを示している。

リターン値

コマンドの実行に 成功した場合、 ゼロが返されます。 そうでなければ、 −1 が返され、 エラーを示す errno が設定されます。

関連事項

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

NEWS-OSRelease 4.2.1R

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