MSGCTL(2-SVR3) RISC/os Reference Manual MSGCTL(2-SVR3)
NAME
msgctl - message control operations
SYNOPSIS
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int msgctl (msqid, cmd, buf)
int msqid, cmd;
struct msqidds *buf;
DESCRIPTION
msgctl provides a variety of message control operations as
specified by cmd. The following cmds are available:
IPCSTAT Place the current value of each
member of the data structure asso-
ciated with msqid into the struc-
ture pointed to by buf. The con-
tents of this structure are defined
in intro(2). {READ}
IPCSET Set the value of the following
members of the data structure asso-
ciated with msqid to the
corresponding value found in the
structure pointed to by buf:
msg_perm.uid
msg_perm.gid
msg_perm.mode /* only low 9 bits */
msg_qbytes
This cmd can only be executed by a
process that has an effective user
ID equal to either that of super
user, or to the value of
msgperm.cuid or msgperm.uid in
the data structure associated with
msqid. Only super user can raise
the value of msgqbytes.
IPCRMID Remove the message queue identifier
specified by msqid from the system
and destroy the message queue and
data structure associated with it.
This cmd can only be executed by a
process that has an effective user
ID equal to either that of super
user, or to the value of
msgperm.cuid or msgperm.uid in
the data structure associated with
Printed 11/19/92 Page 1
MSGCTL(2-SVR3) RISC/os Reference Manual MSGCTL(2-SVR3)
msqid.
ERRORS
msgctl will fail if one or more of the following are true:
[EINVAL] msqid is not a valid message queue
identifier.
[EINVAL] cmd is not a valid command.
[EACCES] cmd is equal to IPCSTAT and {READ}
operation permission is denied to
the calling process [see intro(2)].
[EPERM] cmd is equal to IPCRMID or
IPCSET. The effective user ID of
the calling process is not equal to
that of super user, or to the value
of msgperm.cuid or msgperm.uid in
the data structure associated with
msqid.
Page 2 Printed 11/19/92
MSGCTL(2-SVR3) RISC/os Reference Manual MSGCTL(2-SVR3)
[EPERM] cmd is equal to IPCSET, an attempt
is being made to increase to the
value of msgqbytes, and the effec-
tive user ID of the calling process
is not equal to that of super user.
[EFAULT] buf points to an illegal address.
SEE ALSO
intro(2), msgget(2), msgop(2).
DIAGNOSTICS
Upon successful completion, a value of 0 is returned. Other-
wise, a value of -1 is returned and errno is set to indicate
the error.
Printed 11/19/92 Page 3