The
msgget()
function
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
is equal to
IPC_PRIVATE,
or
key
does not have a message queue identifier associated with it, and the
IPC_CREAT
bit is set in
msgflg.
If a new message queue is created, the data structure associated with it (the
msqid_ds
structure, see
msgctl(2))
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 constants:
0400
|
Read access for user.
|
0200
|
Write access for user.
|
0040
|
Read access for group.
|
0020
|
Write access for group.
|
0004
|
Read access for other.
|
0002
|
Write access for other.
|
- msg_cbytes,
msg_qnum,
msg_lspid,
msg_lrpid,
msg_rtime,
and
msg_stime
are set to 0.
- msg_qbytes
is set to the system wide maximum value for the number of bytes in a queue
( MSGMNB).
- msg_ctime
is set to the current time.