MSGGET(2-SVR3) RISC/os Reference Manual MSGGET(2-SVR3)
NAME
msgget - get message queue
SYNOPSIS
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int msgget (key, msgflg)
keyt 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 equal to IPC_PRIVATE.
key 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:
msgperm.cuid, msgperm.uid, msgperm.cgid, and
msgperm.gid are set equal to the effective user ID and
effective group ID, respectively, of the calling pro-
cess.
The low-order 9 bits of msgperm.mode are set equal to
the low-order 9 bits of msgflg.
msgqnum, msglspid, msglrpid, msgstime, and
msgrtime are set equal to 0.
msgctime is set equal to the current time.
msgqbytes is set equal to the system limit.
ERRORS
msgget will fail 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.
Printed 11/19/92 Page 1
MSGGET(2-SVR3) RISC/os Reference Manual MSGGET(2-SVR3)
[ENOENT] A message queue identifier does not
exist for key and (msgflg &
IPCCREAT) 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.
[EEXIST] A message queue identifier exists
for key but ((msgflg & IPCCREAT) &
(msgflg & IPCEXCL)) is ``true''.
SEE ALSO
intro(2), msgctl(2), msgop(2).
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.
Page 2 Printed 11/19/92