MSGCTL(2-SysV) RISC/os Reference Manual MSGCTL(2-SysV)
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 msqid_ds *buf;
DESCRIPTION
msgctl provides a variety of message control operations as
specified by cmd. The following cmds are available:
IPC_STAT 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}
IPC_SET 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
msg_perm.cuid or msg_perm.uid in
the data structure associated with
msqid. Only super user can raise
the value of msg_qbytes.
IPC_RMID 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
msg_perm.cuid or msg_perm.uid in
the data structure associated with
Printed 1/15/91 Page 1
MSGCTL(2-SysV) RISC/os Reference Manual MSGCTL(2-SysV)
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 IPC_STAT and {READ}
operation permission is denied to
the calling process [see intro(2)].
[EPERM] cmd is equal to IPC_RMID or
IPC_SET. The effective user ID of
the calling process is not equal to
that of super user, or to the value
of msg_perm.cuid or msg_perm.uid in
the data structure associated with
msqid.
Page 2 Printed 1/15/91
MSGCTL(2-SysV) RISC/os Reference Manual MSGCTL(2-SysV)
[EPERM] cmd is equal to IPC_SET, an attempt
is being made to increase to the
value of msg_qbytes, 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 1/15/91 Page 3