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

FreeBSD Manual Pages

  
 
  

home | help
MSGGET(2)		      System Calls Manual		     MSGGET(2)

NAME
       msgget -- get message queue

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<sys/msg.h>

       int
       msgget(key_t key, int msgflg);

DESCRIPTION
       The  msgget()  function returns the message queue identifier associated
       with key.  A message queue identifier is	a unique integer greater  than
       zero.

       A  message  queue  is created if	either key is equal to IPC_PRIVATE, or
       key does	not have a message queue identifier associated	with  it,  and
       the IPC_CREAT bit is set	in msgflg.

       If  a  new message queue	is created, the	data structure associated with
       it (the msqid_ds	structure, see msgctl(2)) is initialized as follows:

          msg_perm.cuid and msg_perm.uid are set to the effective uid of  the
	   calling process.

          msg_perm.gid	 and msg_perm.cgid are set to the effective gid	of the
	   calling process.

          msg_perm.mode is set	to the lower 9 bits of msgflg which are	set by
	   ORing these constants:

	   0400
	     Read access for user.

	   0200
	     Write access for user.

	   0040
	     Read access for group.

	   0020
	     Write access for group.

	   0004
	     Read access for other.

	   0002
	     Write access for other.

          msg_cbytes,	msg_qnum,   msg_lspid,	 msg_lrpid,   msg_rtime,   and
	   msg_stime are set to	0.

          msg_qbytes  is  set to the system wide maximum value	for the	number
	   of bytes in a queue (MSGMNB).

          msg_ctime is	set to the current time.

RETURN VALUES
       Upon successful completion a positive message queue identifier  is  re-
       turned.	Otherwise, -1 is returned and the global variable errno	is set
       to indicate the error.

ERRORS
       [EACCES]		  A  message  queue is already associated with key and
			  the caller has no permission to access it.

       [EEXIST]		  Both IPC_CREAT and IPC_EXCL are set in msgflg, and a
			  message queue	is already associated with key.

       [ENOSPC]		  A new	message	queue could not	be created because the
			  system limit for the number of  message  queues  has
			  been reached.

       [ENOENT]		  IPC_CREAT was	not set	in msgflg and no message queue
			  associated with key was found.

SEE ALSO
       msgctl(2), msgrcv(2), msgsnd(2)

HISTORY
       Message queues appeared in the first release of AT&T System V UNIX.

FreeBSD	13.2			 March 4, 2018			     MSGGET(2)

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=msgget&sektion=2&manpath=FreeBSD+14.1-RELEASE+and+Ports>

home | help