Man Linux: Main Page and Category List

NAME

       shmctl - XSI shared memory control operations

SYNOPSIS

       #include <sys/shm.h>

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

DESCRIPTION

       The  shmctl()  function  operates  on  XSI  shared memory (see the Base
       Definitions  volume  of  IEEE Std 1003.1-2001,  Section  3.340,  Shared
       Memory  Object).  It is unspecified whether this function interoperates
       with the realtime  interprocess  communication  facilities  defined  in
       Realtime .

       The  shmctl()  function  provides  a  variety  of shared memory control
       operations as specified by  cmd.  The  following  values  for  cmd  are
       available:

       IPC_STAT
              Place  the  current  value  of  each member of the shmid_ds data
              structure associated with shmid into the structure pointed to by
              buf. The contents of the structure are defined in <sys/shm.h>.

       IPC_SET
              Set  the  value  of  the  following members of the shmid_ds 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    Low-order nine bits.

       IPC_SET can only be executed by a process that has an effective user ID
       equal to either that of a process with appropriate privileges or to the
       value  of  shm_perm.cuid or shm_perm.uid in the shmid_ds 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 shmid_ds data
              structure associated with it. IPC_RMID can only be executed by a
              process  that has an effective user ID equal to either that of a
              process  with  appropriate  privileges  or  to  the   value   of
              shm_perm.cuid  or  shm_perm.uid  in  the shmid_ds data structure
              associated with shmid.

RETURN VALUE

       Upon successful completion, shmctl()  shall  return  0;  otherwise,  it
       shall return -1 and set errno to indicate the error.

ERRORS

       The shmctl() function shall fail if:

       EACCES The  argument  cmd  is equal to IPC_STAT and the calling process
              does  not   have   read   permission;   see   XSI   Interprocess
              Communication .

       EINVAL The  value  of shmid is not a valid shared memory identifier, or
              the value of cmd is not a valid command.

       EPERM  The argument cmd  is  equal  to  IPC_RMID  or  IPC_SET  and  the
              effective user ID of the calling process is not equal to that of
              a process with appropriate privileges and it is not equal to the
              value  of  shm_perm.cuid  or  shm_perm.uid in the data structure
              associated with shmid.

       The shmctl() function may fail if:

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

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       The  POSIX  Realtime  Extension  defines  alternative  interfaces   for
       interprocess  communication. Application developers who need to use IPC
       should design their applications so that modules using the IPC routines
       described  in  XSI Interprocess Communication can be easily modified to
       use the alternative interfaces.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       XSI Interprocess  Communication  ,  Realtime  ,  shmat()  ,  shmdt()  ,
       shmget()  ,  shm_open() , shm_unlink() , the Base Definitions volume of
       IEEE Std 1003.1-2001, <sys/shm.h>

COPYRIGHT

       Portions of this text are reprinted and reproduced in  electronic  form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       -- Portable Operating System Interface (POSIX),  The  Open  Group  Base
       Specifications  Issue  6,  Copyright  (C) 2001-2003 by the Institute of
       Electrical and Electronics Engineers, Inc and The Open  Group.  In  the
       event of any discrepancy between this version and the original IEEE and
       The Open Group Standard, the original IEEE and The Open Group  Standard
       is  the  referee document. The original Standard can be obtained online
       at http://www.opengroup.org/unix/online.html .