Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

shmget(2)

shmop(2)



          SHMCTL(2)            INTERACTIVE UNIX System            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 shmid_ds *buf;

          DESCRIPTION
               The shmctl system call provides a variety of shared memory
               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 shmid 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 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 shm_perm.cuid or
                          shm_perm.uid in the data structure associated
                          with shmid.

               IPC_RMID   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 shm_perm.cuid or
                          shm_perm.uid in the data structure associated
                          with shmid.

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

               SHM_UNLOCK Unlock the shared memory segment specified by


          Rev. C Software Development Set                            Page 1





          SHMCTL(2)            INTERACTIVE UNIX System            SHMCTL(2)



                          shmid.  This cmd can only be executed by a pro-
                          cess that has an effective user ID equal to
                          super-user.

               The shmctl system call will fail if one or more of the fol-
               lowing is true:

               [EINVAL]    Shmid is not a valid shared memory identifier.

               [EINVAL]    Cmd is not a valid command.

               [EACCES]    Cmd is equal to IPC_STAT and {READ} operation
                           permission is denied to the calling process [see
                           intro(2)].

               [EPERM]     Cmd is equal to IPC_RMID or IPC_SET, and the
                           effective user ID of the calling process is not
                           equal to that of super-user or to the value of
                           shm_perm.cuid or shm_perm.uid in the data struc-
                           ture associated with shmid.

               [EPERM]     Cmd is equal to SHM_LOCK or SHM_UNLOCK, 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 SHM_LOCK, and there is not
                           enough memory.

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

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














          Rev. C Software Development Set                            Page 2



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