msgctl(2) msgctl(2)NAME msgctl - message control operations SYNOPSIS #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> int msgctl(id, cmd, buf) int id, cmd; struct msqid_ds *buf; DESCRIPTION msgctl provides a variety of message control operations as specified by cmd. The following cmds are available: IPC_STAT Place the current value of each member of the data structure associated with id into the structure referenced by buf. The contents of this structure are defined in intro(2). IPC_SET Set the value of the following members of the data structure associated with id to the corresponding value found in the structure referenced by 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 superuser or to the value of msg_perm.uid in the data structure associated with id. Only the superuser can raise the value of msg_qbytes. IPC_RMID Remove the message queue identifier specified by id from the system and destroy the message queue and data structure associated with it. 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.uid in the data structure associated with id. The identifier and its associated data structure are not actually removed until there are no more referencing processes. See ipcrm(1), and ipcs(1). April, 1990 1
msgctl(2) msgctl(2)RETURN VALUE Upon successful completion, a value of 0 is returned. Oth- erwise, a value of -1 is returned and errno is set to indi- cate the error. ERRORS msgctl will fail if one or more of the following is true. [EINVAL] id is not a valid message queue identifier. [EINVAL] cmd is not a valid command. [EACCES] cmd is equal to IPC_STAT and operation per- mission is denied to the calling process (see intro(2)). [EPERM] cmd is equal to IPC_RMID or IPC_SET. The ef- fective user ID of the calling process is not equal to that of superuser and it is not equal to the value of msg_perm.uid in the data structure associated with id. [EPERM] 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 pro- cess is not equal to that of superuser. [EFAULT] buf points to an illegal address. SEE ALSO intro(2), msgget(2), msgop(2). 2 April, 1990