Differences between current version and revision by previous author of msgctl(2).
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 2 | Last edited on Saturday, March 15, 2003 1:11:11 am | by PerryLorier | |
Older page: | version 1 | Last edited on Tuesday, June 4, 2002 12:23:43 am | by perry | Revert |
@@ -1,139 +1,43 @@
-MSGCTL
-!!!MSGCTL
-NAME
-SYNOPSIS
-DESCRIPTION
-RETURN VALUE
-ERRORS
-NOTES
-CONFORMING TO
-SEE ALSO
-----
!!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'' __)__
-__# include
-____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.
-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.
-
-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__.
-
-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''.)
-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.
-
-SVr4, SVID. SVID does not document the EIDRM error
-condition.
!!SEE ALSO
-
-
-
ipc(5), msgget(2), msgsnd(2),
-
msgrcv(2)
-----
+ipc(5), msgget(2), msgsnd(2), msgrcv(2)