Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ msgctl(S) — System V/386 Software Development System 3.2.2b

Media Vault

Software Library

Restoration Projects

Artifacts Sought



     MSGCTL(S)                 UNIX System V                 MSGCTL(S)



     Name
          msgctl - message control operations

     Syntax
          #include <sys/types.h>
          #include <sys/ipc.h>
          #include <sys/msg.h>

          int msgctl (msqid, cmd, buf)
          int msqid, cmd;
          msqid_ds *buf;

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

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

          The msgctl system call will fail if one or more of the
          following is true:

          [EINVAL]       The msqid argument is not a valid message
                         queue identifier.

          [EINVAL]       The cmd argument is not a valid command.

          [EACCES]       The cmd argument is equal to IPC_STAT and
                         {READ} operation permission is denied to the
                         calling process (see intro(S)).

          [EPERM]        The cmd argument 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.

          [EPERM]        The cmd argument is equal to IPC_SET, an
                         attempt is being made to increase to the
                         value of msg_qbytes, and the effective user
                         ID of the calling process is not equal to
                         that of super-user.

          [EFAULT]       The buf argument points to an illegal
                         address.

     See Also
          intro(S), msgget(S), msgop(S)

     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.

     Standards Conformance
          msgctl is conformant with:
          AT&T SVID Issue 2, Select Code 307-127;
          and The X/Open Portability Guide II of January 1987.


                                             (printed 6/20/89)



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