Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
msgctl(2)
Edit
PageHistory
Diff
Info
LikePages
!!NAME msgctl - message control operations !!SYNOPSIS __#include <sys/types.h>__ __#include <sys/ipc.h>__ __#include <sys/msg.h>__ __int msgctl ( int__ ''msqid''__, int__ ''cmd''__, struct msqid_ds *__''buf'' __)__ !!DESCRIPTION The function performs the control operation specified by ''cmd'' on the message queue with identifier ''msqid''. Legal values for ''cmd'' are: ;__IPC_STAT__: Copy info from the message queue data structure into the structure pointed to by ''buf''. The user must have read access privileges on the message queue. ;__IPC_SET__: Write the values of some members of the __msqid_ds__ structure pointed to by ''buf'' to the message queue data structure, updating also its __msg_ctime__ member. Considered members from the user supplied __struct msqid_ds__ pointed to by ''buf'' are ;:__msg_perm.uid__ ;:__msg_perm.gid__ ;:__msg_perm.mode__ /* only lowest 9-bits */ ;:__msg_qbytes__ ;:The calling process effective user-ID must be one among super-user, creator or owner of the message queue. Only the super-user can raise the __msg_qbytes__ value beyond the system parameter __MSGMNB__. ;__IPC_RMID__: Remove immediately the message queue and its data structures awakening all waiting reader and writer processes (with an error return and __errno__ set to [EIDRM]). The calling process effective user-ID must be one among super-user, creator or owner of the message queue. !!RETURN VALUE If successful, the return value will be __0__, otherwise __-1__ with __errno__ indicating the error. !!ERRORS For a failing return, __errno__ will be set to one among the following values: ;[EACCES]: The argument ''cmd'' is equal to __IPC_STAT__ but the calling process has no read access permissions on the message queue ''msqid''. ;[EFAULT]: The argument ''cmd'' has value __IPC_SET__ or __IPC_STAT__ but the address pointed to by ''buf'' isn't accessible. ;[EIDRM]: The message queue was removed. ;[EINVAL]: Invalid value for ''cmd'' or ''msqid''. ;[EPERM]: The argument ''cmd'' has value __IPC_SET__ or __IPC_RMID__ but the calling process effective user-ID has insufficient privileges to execute the command. Note this is also the case of a non super-user process trying to increase the __msg_qbytes__ value beyond the value specified by the system parameter __MSGMNB__. !!NOTES The __IPC_INFO__, __MSG_STAT__ and __MSG_INFO__ control calls are used by the ipcs(8) program to provide information on allocated resources. In the future these can be modified as needed or moved to a proc file system interface. Various fields in a ''struct msqid_ds'' were shorts under Linux 2.2 and have become longs under Linux 2.4. To take advantage of this, a recompilation under glibc-2.1.91 or later should suffice. (The kernel distinguishes old and new calls by a IPC_64 flag in ''cmd''.) !!CONFORMING TO SVr4, SVID. SVID does not document the [EIDRM] error condition. !!SEE ALSO ipc(5), msgget(2), msgsnd(2), msgrcv(2)
8 pages link to
msgctl(2)
:
ipc(2)
perlfunc(1)
Man2m
ipc(5)
msgrcv(2)
msgsnd(2)
msgget(2)
msgop(2)
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.