msgget(S)
msgget --
get message queue
Syntax
cc ... -lc
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int msgget (key, msgflg)
key_t key;
int msgflg;
Description
The
msgget
system call
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 is true:
- 
The key argument is equal to IPC_PRIVATE.
 
- 
The key argument does not already have
a message queue identifier associated with it,
and (msgflg & IPC_CREAT) is ``true''.
Upon creation, the data structure associated with the new message queue
identifier is initialized as follows:
- 
msg_perm.cuid,msg_perm.uid,msg_perm.cgid, andmsg_perm.gidare set equal to the effective user ID
and effective group ID,
respectively, of the calling process.
 
- 
The low-order 9 bits of msg_perm.modeare set equal to the low-order 9 bits of msgflg.
 
- 
msg_qnum,msg_lspid,msg_lrpid,msg_stime, andmsg_rtimeare set equal to 0.
 
- 
msg_ctimeis set equal to the current time.
 
- 
msg_qbytesis set equal to the system limit.
The msgget system call
fails if one or more of the following is true:
 [EACCES]
- 
A message queue identifier exists for key, but
operation permission as specified by the low-order 9 bits of
msgflg
would not be granted.
 [EEXIST]
- 
A message queue identifier exists for
key
but
[(msgflg &
IPC_CREAT)
&
(msgflg &
IPC_EXCL)]
is ``true''.
 [ENOENT]
- 
A message queue identifier does not exist for key
and (msgflg & IPC_CREAT) 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.
Diagnostics
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(S),
msgctl(S),
msgop(S)
Standards conformance
msgget is conformant with:
X/Open Portability Guide, Issue 3, 1989
.
© 2003 Caldera International, Inc.  All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003