Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ shmctl(2) — 4D1 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

shmget(2)

shmop(2)



     SHMCTL(2)                                               SHMCTL(2)



     NAME
          shmctl - shared memory control operations

     SYNOPSIS
          #include <sys/types.h>
          #include <sys/ipc.h>
          #include <sys/shm.h>

          int shmctl (shmid, cmd, buf)
          int shmid, cmd;
          struct shmidds *buf;

     DESCRIPTION
          shmctl provides a variety of shared memory 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 shmid 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 shmid to the
                     corresponding value found in the structure
                     pointed to by buf:


                     shm_perm.uid
                     shm_perm.gid
                     shm_perm.mode /* only low 9 bits */

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

          IPCRMID   Remove the shared memory identifier specified by
                     shmid from the system and destroy the shared
                     memory segment and data structure associated with
                     it.  This cmd can only be executed by a process
                     that has an effective user ID equal to that of
                     super user, or to the value of shmperm.cuid or
                     shmperm.uid in the data structure associated
                     with shmid.

          SHMLOCK   Lock the shared memory segment specified by shmid
                     in memory.  This cmd can only be executed by a
                     process that has an effective user ID equal to
                     super user.




     Page 1                                        (last mod. 8/20/87)





     SHMCTL(2)                                               SHMCTL(2)



          SHMUNLOCK Unlock the shared memory segment specified by
                     shmid.  This cmd can only be executed by a
                     process that has an effective user ID equal to
                     super user.

          shmctl will fail if one or more of the following are true:

          [EINVAL]    Shmid is not a valid shared memory 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 and the
                      effective user ID of the calling process is not
                      equal to that of super user, or to the value of
                      shmperm.cuid or shmperm.uid in the data
                      structure associated with shmid.

          [EPERM]     Cmd is equal to SHMLOCK or SHMUNLOCK and the
                      effective user ID of the calling process is not
                      equal to that of super user.

          [EFAULT]    Buf points to an illegal address.

          [ENOMEM]    Cmd is equal to SHMLOCK and there is not enough
                      memory.

     SEE ALSO
          shmget(2), shmop(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.

     NOTES
          The user must explicitly remove shared memory segments after
          the last reference to them has been removed.

     ORIGIN
          AT&T V.3











     Page 2                                        (last mod. 8/20/87)



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