MSGCTL(2) | System Calls | MSGCTL(2) |
msgctl - message control operations
#include <sys/msg.h> int msgctl(int msqid, int cmd, struct msqid_ds *buf);
The msgctl() function provides a variety of message control operations as specified by cmd. The following cmds are available:
IPC_STAT
IPC_SET
msg_perm.uid msg_perm.gid msg_perm.mode /* access permission bits only */ msg_qbytes
This command can be executed only by a process that has either the {PRIV_IPC_OWNER} privilege or an effective user ID equal to the value of msg_perm.cuid or msg_perm.uid in the data structure associated with msqid. Only a process with the {PRIV_SYS_IPC_CONFIG} privilege can raise the value of msg_qbytes.
IPC_RMID
Upon successful completion, msgctl() returns 0. Otherwise, it returns −1 and sets errno to indicate the error.
The msgctl() function will fail if:
EACCES
EFAULT
EINVAL
EOVERFLOW
EPERM
The cmd argument is IPC_SET, an attempt is being made to increase to the value of msg_qbytes, and the {PRIV_SYS_IPC_CONFIG} privilege is not asserted in the effective set of the calling process.
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Standard |
Intro(2), msgget(2), msgrcv(2), msgsnd(2), attributes(7), privileges(7), standards(7)
March 22, 2004 | OmniOS |