Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ msgctl(2) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

msgget(2)

msgop(2)






       msgctl(2)                                                  msgctl(2)


       NAME
             msgctl - message control operations

       SYNOPSIS
             #include <sys/types.h>
             #include <sys/ipc.h>
             #include <sys/msg.h>
             int msgctl(int msqid, int 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 associated with msqid into the structure
                         pointed to by buf.  The contents of this structure
                         are defined in intro.

             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 access permission bits */
                               msg_qbytes

                         This cmd can only be executed by a process that
                         has an effective user ID equal to the value of
                         msg_perm.cuid or msg_perm.uid in the data
                         structure associated with msqid, or by a process
                         that has the P_OWNER privilege.

             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
                         superuser, or to the value of msg_perm.cuid or
                         msg_perm.uid in the data structure associated with
                         msqid.

          Return Values
             On success, msgctl returns 0.  On failure, msgctl returns -1
             and sets errno to identify the error.



                           Copyright 1994 Novell, Inc.               Page 1













      msgctl(2)                                                  msgctl(2)


         Errors
            In the following conditions, msgctl fails and sets errno to:

            EACCES      cmd is IPC_STAT and operation permission is denied
                        to the calling process [see intro(2)].

            EFAULT      buf points to an illegal address.

            EINVAL      msqid is not a valid message queue identifier.

            EINVAL      cmd is not a valid command.

            EINVAL      cmd is IPC_SET and msg_perm.uid or msg_perm.gid is
                        not valid.

            EOVERFLOW   cmd is IPC_STAT and uid or gid is too large to be
                        stored in the structure pointed to by buf.

            EPERM       cmd is IPC_RMID or IPC_SET, the effective user ID
                        of the calling process is not equal to the value
                        of msg_perm.cuid or msg_perm.uid in the data
                        structure associated with msqid and the process
                        does not have the P_OWNER privilege.

      REFERENCES
            intro(2), msgget(2), msgop(2)






















                          Copyright 1994 Novell, Inc.               Page 2








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