#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h>
int msgctl (msqid, cmd, buf) int msqid, cmd; struct msqid_ds *buf;
msg_perm.uid msg_perm.gid msg_perm.mode /* only low 9 bits */ msg_qbytes
This cmd can only be executed by a process that has an effective user ID equal to either that of super-user, or to the value of msg_perm.cuid or msg_perm.uid in the data structure associated with msqid. Only super-user can raise the value of msg_qbytes.
In the msgop.2 and msgctl.2 system call descriptions, the permission required for an operation is given as "[token]", where ``token'' is the type of permission needed interpreted as follows:
Read and Write permissions on a msqid are granted to a process if one or more of the following are true:
The effective user ID of the process is super-user.
The effective user ID of the process matches msg_perm.[c]uid in the data structure associated with msqid and the appropriate bit of the ``user'' portion (0600) of msg_perm.mode is set.
The effective user ID of the process does not match msg_perm.[c]uid and the effective group ID of the process matches msg_perm.[c]gid and the appropriate bit of the ``group'' portion (060) of msg_perm.mode is set.
The effective user ID of the process does not match msg_perm.[c]uid and the effective group ID of the process does not match msg_perm.[c]gid and the appropriate bit of the ``other'' portion (06) of msg_perm.mode is set.
Otherwise, the corresponding permissions are denied.
cmd is not a valid command.
cmd is equal to IPC_SET, an attempt is being made to increase to the value of msg_qbytes, and the effective user ID of the calling process is not equal to that of super-user.
Created by unroff & hp-tools. © somebody (See intro for details). All Rights Reserved. Last modified 11/5/97