msgget(2) msgget(2)
NAME
msgget - get message queue
SYNOPSIS
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int msgget (key, msgflg)
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:
10 key is equal to IPCPRIVATE.
key does not already have a message queue identifier
associated with it, and (msgflg & IPCCREAT) is
``true''.
Upon 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 equal to the effective user ID and
effective group ID, respectively, of the calling
process.
The low-order 9 bits of msgperm.mode are set equal to
the low-order 9 bits of msgflg.
msgqnum, msglspid, msglrpid, msgstime, and
msgrtime are set equal to 0.
msgctime is set equal to the current time.
msgqbytes is set equal to the system limit.
msgget will fail 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
Page 1 (last mod. 1/14/87)
msgget(2) msgget(2)
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 allowed message queue identifiers
system wide would be exceeded.
[EEXIST] A message queue identifier exists for key but
( (msgflg & IPCCREAT) & ( msgflg & IPCEXCL)
) is ``true''.
RETURN VALUE
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
intro(2), msgctl(2), msgop(2).
Page 2 (last mod. 1/14/87)