Manual page for msgget(2)
msgget - get message queue
SYNOPSIS
#include <sys/msg.h>
int msgget(key_t key,
int msgflg);
DESCRIPTION
msgget()
returns the message queue identifier associated with
key.
A message queue identifier and associated message queue and data structure
(see
intro.2
are created for
key
if one of the following are true:
- key
is
IPC_PRIVATE.
- key
does not already have a message queue identifier associated with it, and
(msgflg&IPC_CREAT)
is true.
On 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 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 to the low-order 9 bits of
msgflg.
- msg_qnum, msg_lspid, msg_lrpid,
msg_stime, and msg_rtime
are set to 0.
- msg_ctime
is set to the current time.
- msg_qbytes
is set to the system limit.
RETURN VALUES
Upon successful completion,
a non-negative integer,
namely a message queue identifier, is returned.
Otherwise,
-1
is returned and
errno
is set to indicate the error.
ERRORS
msgget()
fails if one or more of the following are true:
- EACCES
-
A message queue identifier exists for
key,
but operation permission (see
intro.2
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)
and (msgflg&IPC_EXCL)
are both 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.
SEE ALSO
intro.2
msgctl.2
msgrcv.2
msgsnd.2
ftok.3c
Created by unroff & hp-tools.
© by Hans-Peter Bischof. All Rights Reserved (1997).
Last modified 07/October/97