NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO
#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:
Place the current value of each member of the data structure associated with msqid into the structure pointed to by buf. The contents of this structure are defined in intro(2).
If it does not have discretionary read access to the data structure, the calling process must have PRIV_IPC_DAC_READ
in its set of effective privileges. If it does not have mandatory read access to the data structure, the calling process must have PRIV_IPC_MAC_READ
in its set of effective privileges.
Set the value of the following members of the data structure associated with msqid to the corresponding value found in the structure pointed to by buf:
msg_perm.uid msg_perm.gid msg_perm.mode /* access permission bits only */ msg_qbytes
A process whose effective user ID does not match the value of msg_perm.cuid or msg_perm.uid must have the PRIV_IPC_OWNER
privilege in its set of effective privileges. A process must have
mandatory write access to the data structure or must have asserted the PRIV_IPC_MAC_WRITE
privilege. Only a process with PRIV_SYS_IPC_CONFIG
asserted can raise the value of msg_qbytes.
Remove from the system the message-queue identifier specified by msqid and destroy the message queue and data structure associated with it. This cmd can be executed only by a process that
has an effective user ID equal to that of msg_perm.cuid or msg_perm.uid in the data structure associated with msqid, or has the PRIV_IPC_OWNER
privilege asserted. A process
must also have mandatory write access to the data structure or must have asserted the PRIV_IPC_MAC_WRITE
privilege. buf is ignored.
The msgctl() function will fail if:
cmd is IPC_STAT, operation permission is denied to the calling process (see intro(2)), and the calling process does not have the appropriate privilege(s) in its set of effective privileges.
The buf argument points to an illegal address.
The msqid argument is not a valid message queue identifier; or the cmd argument is not a valid command or is IPC_SET and msg_perm.uid or msg_perm.gid is not valid.
cmd is IPC_RMID or IPC_SET, the discretionary and/or mandatory access checks failed, and the process did not have the appropriate override privilege asserted.
cmd is IPC_SET, an attempt is being made to increase to the value of msg_qbytes, and the process did not have the appropriate override privilege asserted.
The cmd argument is IPC_STAT and uid or gid is too large to be stored in the structure pointed to by buf.
Appropriate privilege is required to override access checks.
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO