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)            INTERACTIVE UNIX System            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 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(2).
                              {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 mes-
                              sage queue and data structure associated with
                              it.  This cmd can only be executed by a pro-
                              cess 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 fol-
               lowing is true:

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


          Rev. C Software Development Set                            Page 1





          MSGCTL(2)            INTERACTIVE UNIX System            MSGCTL(2)



               [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(2)].

               [EPERM]        The cmd argument is equal to IPC_RMID or
                              IPC_SET.  The effective user ID of the cal-
                              ling 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(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 indi-
               cate the error.


























          Rev. C Software Development Set                            Page 2



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