Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ shmctl(2) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

shmget(2)

shmop(2)



shmctl(2)                 SYSTEM CALLS                  shmctl(2)



NAME
     shmctl - shared memory control operations

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

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

DESCRIPTION
     shmctl provides a variety of shared  memory  control  opera-
     tions  as  specified  by cmd.  The following cmds are avail-
     able:

     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:

                     shmperm.uid
                     shmperm.gid
                     shmperm.mode /* only access permission bits */

                 This command can be executed only 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 command can be executed only 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 struc-
                 ture associated with shmid.

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

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



                                                                1





shmctl(2)                 SYSTEM CALLS                  shmctl(2)



                 super-user.

     shmctl fails if one or more of the following are true:

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

     EINVAL      shmid is not a valid shared memory identifier.

     EINVAL      cmd is not a valid command.

     EINVAL      cmd is IPCSET and shmperm.uid or  shmperm.gid
                 is not valid.

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

     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 struc-
                 ture 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. Other-
     wise, 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.











                                                                2



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