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
, and msg_perm.gid
are set equal to the effective user ID
and effective group ID,
respectively, of the calling process.
-
The low-order 9 bits of
msg_perm.mode
are set equal to the low-order 9 bits of msgflg.
-
msg_qnum
, msg_lspid
, msg_lrpid
,
msg_stime
, and msg_rtime
are set equal to 0.
-
msg_ctime
is set equal to the current time.
-
msg_qbytes
is 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