Copyright (C) 2000-2012 |
GNU Info (ipc.info)msgctlmsgctl ------ 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 |