Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

msgget(2)

msgop(2)



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



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026