Penguin

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) 
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.