() 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
does not have a message queue identifier
associated with it, and the
is set in msgflg
If a new message queue is created, the data structure associated with it (the
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_stime are set to 0.
- msg_qbytes is set to
the system wide maximum value for the number of bytes in a queue
- msg_ctime is set to the
Upon successful completion a positive message queue identifier is returned.
Otherwise, -1 is returned and the global variable
is set to indicate the error.
- A message queue is already associated with
key and the caller has no permission to
IPC_EXCL are set in
msgflg, and a message queue is already
associated with key.
- A new message queue could not be created because the system
limit for the number of message queues has been reached.
was not set in msgflg and no message
queue associated with key was found.
Message queues appeared in AT&T System V
Release 1 UNIX