GNU Info

Info Node: (ipc.info)msgctl

(ipc.info)msgctl


Next: msglimits Prev: msgrcv Up: Messages
Enter node , (file) or (file)node

msgctl
------

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

   * msqid  : id obtained by a call to msgget.

   * buf    : allocated by user for reading/writing info.

   * cmd    : IPC_STAT, IPC_SET, IPC_RMID (Note: syscalls).

   IPC_STAT results in the copy of the queue data structure into the
user supplied buffer.

   In the case of IPC_SET, the queue size (`msg_qbytes') and the `uid',
`gid', `mode' (low 9 bits) fields of the `msg_perm' struct are set from
the user supplied values.  `msg_ctime' is updated.

   Note that only the super user may increase the limit on the size of a
message queue beyond MSGMNB.

   When the queue is destroyed (IPC_RMID), the sequence number is
incremented and all waiting readers and writers are awakened.  These
processes will then return with `errno' set to EIDRM.

Errors:

EPERM  : Insufficient privilege to increase the size of the queue
(IPC_SET) or remove it (IPC_RMID).
EACCES : Do not have permission for reading the queue (IPC_STAT).
EFAULT : buf not accessible (IPC_STAT, IPC_SET).
EIDRM  : msg queue was removed.
EINVAL : invalid cmd, msqid < 0 or unused.


automatically generated by info2www version 1.2.2.9