Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ () — Motorola System V 88k Release 3.2 Version 1.2C

Media Vault

Software Library

Restoration Projects

Artifacts Sought



  MSGCTL(2)                                               MSGCTL(2)



  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 associated with msqid into the
                      structure pointed to by buf.  The contents of
                      this structure are defined in intro(2).
                      {READ}

       IPCSET        Set the value of the following members of the
                      data structure associated 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


  Page 1                                                   May 1989


















  MSGCTL(2)                                               MSGCTL(2)



                      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 msqid.

       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                                                   May 1989


















  MSGCTL(2)                                               MSGCTL(2)



       [EPERM]        Cmd is equal to IPCSET, an attempt is being
                      made to increase to the value of msgqbytes,
                      and the effective 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.
       Otherwise, a value of -1 is returned and errno is set to
       indicate the error.




























  Page 3                                                   May 1989
















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