Provided by: freebsd-manpages_9.2+1-1_all bug

NAME

       msgget — get message queue

LIBRARY

       Standard C Library (libc, -lc)

SYNOPSIS

       #include <sys/types.h>
       #include <sys/ipc.h>
       #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.

          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 returned.  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.

Debian                                            July 9, 2009                                         MSGGET(2)