msgget(2) msgget(2)
NAME
msgget - get identifier of message queue
SYNOPSIS
#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 are created for key if one of the following applies:
- 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 message 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 process.
- 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 apply:
EACCES A message queue identifier exists for key, but operation per-
mission as specified by the low-order 9 bits of msgflg is not
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 but the system-
imposed limit on the maximum number of message queue identif-
iers allowed in the system will be exceeded.
EEXIST A message queue identifier exists for key but
(msgflg&IPCCREAT) and (msgflg&IPCEXCL) are both true.
Page 1 Reliant UNIX 5.44 Printed 11/98
msgget(2) msgget(2)
RESULT
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.
SEE ALSO
msgctl(2), msgop(2), stdipc(3C).
Page 2 Reliant UNIX 5.44 Printed 11/98