msgget(2) SYSTEM CALLS msgget(2)
NAME
msgget - get message queue
SYNOPSIS
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int msgget(keyt key, int msgflg);
DESCRIPTION
msgget returns the message queue identifier associated with
key.
A message queue identifier and associated message queue and
data structure [see intro(2)] are created for key if one of
the following are true:
key is IPCPRIVATE.
key does not already have a message queue identifier
associated with it, and (msgflg&IPCCREAT) is true.
On creation, the data structure associated with the new mes-
sage queue identifier is initialized as follows:
msgperm.cuid, msgperm.uid, msgperm.cgid, and
msgperm.gid are set to the effective user ID and
effective group ID, respectively, of the calling pro-
cess.
The low-order 9 bits of msgperm.mode are set to the
low-order 9 bits of msgflg.
msgqnum, msglspid, msglrpid, msgstime, and
msgrtime are set to 0.
msgctime is set to the current time.
msgqbytes is set to the system limit.
msgget fails if one or more of the following are true:
EACCES A message queue identifier exists for key,
but operation permission [see intro(2)] as
specified by the low-order 9 bits of msgflg
would not be granted.
ENOENT A message queue identifier does not exist for
key and (msgflg&IPCCREAT) is false.
ENOSPC A message queue identifier is to be created
1
msgget(2) SYSTEM CALLS msgget(2)
but the system-imposed limit on the maximum
number of allowed message queue identifiers
system wide would be exceeded.
EEXIST A message queue identifier exists for key but
(msgflg&IPCCREAT) and (msgflg&IPCEXCL) are
both true.
SEE ALSO
intro(2), msgctl(2), msgop(2), stdipc(3C).
DIAGNOSTICS
Upon successful completion, a non-negative integer, namely a
message queue identifier, is returned. Otherwise, a value
of -1 is returned and errno is set to indicate the error.
2