get message queue
Standard C Library (libc, -lc)
() function returns the message
queue identifier associated with key
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
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
- Read access for user.
- Write access for user.
- Read access for group.
- Write access for group.
- Read access for other.
- Write access for other.
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 current
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 the first release of AT&T
System V UNIX