Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
msgctl(2)			 System	Calls			     msgctl(2)

NAME
       msgctl -	message	control	operations

SYNOPSIS
       #include	<sys/msg.h>

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

DESCRIPTION
       The  msgctl() function provides a variety of message control operations
       as specified by cmd. The	following cmds are available:

       IPC_STAT	       Place the current value of  each	 member	 of  the  data
		       structure  associated  with  msqid  into	 the structure
		       pointed to by buf. The contents of this	structure  are
		       defined in intro(2).

       IPC_SET	       Set  the	 value	of  the	 following members of the data
		       structure associated with msqid	to  the	 corresponding
		       value found in the structure pointed to by buf:

		       msg_perm.uid
		       msg_perm.gid
		       msg_perm.mode /*	access permission bits only */
		       msg_qbytes

		       This command can	be executed only by a process that has
		       either the {PRIV_IPC_OWNER} privilege or	 an  effective
		       user   ID  equal	 to  the  value	 of  msg_perm.cuid  or
		       msg_perm.uid in	the  data  structure  associated  with
		       msqid.  Only  a	process	with the {PRIV_SYS_IPC_CONFIG}
		       privilege can raise the value of	msg_qbytes.

       IPC_RMID	       Remove the message queue	identifier specified by	 msqid
		       from  the system	and destroy the	message	queue and data
		       structure associated with it. This cmd can only be exe-
		       cuted by	a process that has an effective	user ID	either
		       with appropriate	privileges asserted in	the  effective
		       set   or	  equal	 to  the  value	 of  msg_perm.cuid  or
		       msg_perm.uid in	the  data  structure  associated  with
		       msqid.  The buf argument	is ignored.

RETURN VALUES
       Upon  successful	 completion, msgctl() returns 0. Otherwise, it returns
       -1 and sets errno to indicate the error.

ERRORS
       The msgctl() function will fail if:

       EACCES	       The cmd argument	is IPC_STAT and	 operation  permission
		       is denied to the	calling	process	(see intro(2)).

       EFAULT	       The buf argument	points to an illegal address.

       EINVAL	       The msqid argument is not a valid message queue identi-
		       fier; or	the cmd	argument is not	a valid	command	or  is
		       IPC_SET and msg_perm.uid	or msg_perm.gid	is not valid.

       EOVERFLOW       The  cmd	 argument  is  IPC_STAT	 and uid or gid	is too
		       large to	be stored in the structure pointed to by buf.

       EPERM	       The  cmd	 argument  is	IPC_RMID   or	IPC_SET,   the
		       {PRIV_SYS_IPC_OWNER}  privilege	is not asserted	in the
		       effective set of	the calling process, and is not	 equal
		       to  the	value  of msg_perm.cuid	or msg_perm.uid	in the
		       data structure associated with msqid.

		       The cmd argument	is IPC_SET, an attempt is  being  made
		       to  increase  to	 the  value  of	 msg_qbytes,  and  the
		       {PRIV_SYS_IPC_CONFIG} privilege is not asserted in  the
		       effective set of	the calling process.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+

SEE ALSO
       intro(2),   msgget(2),	msgrcv(2),  msgsnd(2),	attributes(5),	privi-
       leges(5), standards(5)

SunOS 5.10			  22 Mar 2004			     msgctl(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=msgctl&sektion=2&manpath=SunOS+5.10>

home | help