Command Section

MSGGET(2)                 FreeBSD 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
     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.

FreeBSD 13.1-RELEASE-p6          March 4, 2018         FreeBSD 13.1-RELEASE-p6

Command Section

man2web Home...