#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h> int
msgget (key_t key int msgflg);
DESCRIPTION
The
msgget ();
function
returns the message queue identifier associated with
Fa key .
A message queue identifier is a unique integer greater than zero.
A message queue is created if either
Fa key
is equal to
IPC_PRIVATE
or
Fa key
does not have a message queue identifier associated with it, and the
IPC_CREAT
bit is set in
Fa msgflg .
If a new message queue is created, the data structure associated with it (the
msqid_ds
structure, see
msgctl(3))
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
Fa msgflg .
msg_cbytesmsg_qnummsg_lspidmsg_lrpidmsg_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.
RETURN VALUES
Upon successful completion a positive message queue identifier is returned.
Otherwise, -1 is returned and the global variable
errno
is set to indicate the error.
ERRORS
Bq Er EACCES
A message queue is already associated with
Fa key
and the caller has no permission to access it.
Bq Er EEXIST
Both
IPC_CREAT
and
IPC_EXCL
are set in
Fa msgflg ,
and a message queue is already associated with
Fa key .
Bq Er ENOSPC
A new message queue could not be created because the system limit for
the number of message queues has been reached.
Bq Er ENOENT
IPC_CREAT
was not set in
Fa msgflg
and no message queue associated with
Fa key
was found.