shmctl(2) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

shmctl(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 shmid_ds *buf);

DESCRIPTION
       The shmctl() function provides a variety of shared memory control oper‐
       ations as specified by cmd. The permission required for a shared memory
       control  operation is given as {token}, where token is the type of per‐
       mission needed. The types of permission are interpreted as follows:

         00400    READ by user
         00200    WRITE by user
         00040    READ by group
         00020    WRITE by group
         00004    READ by others
         00002    WRITE by others



       See the Shared Memory Operation Permissions  section  of  Intro(2)  for
       more information.


       The following operations require the specified tokens:

       IPC_STAT      Place the current value of each member of the data struc‐
                     ture 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 struc‐
                     ture  associated  with  shmid  to the corresponding value
                     found in the structure pointed to by buf:


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

                     This command can be executed only by a process  that  has
                     appropriate  privileges  or an effective user ID equal 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. The segment referenced by the identifier
                     will  be  destroyed  when  all processes with the segment
                     attached have either detached the segment or  exited.  If
                     the  segment is not attached to any process when IPC_RMID
                     is invoked, it will be destroyed immediately.  This  com‐
                     mand can be executed only by a process that has appropri‐
                     ate privileges or an effective user ID equal 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 mem‐
                     ory.  This command can be executed only by a process that
                     has appropriate privileges.

                     This has no effect on shared memory segments created with
                     shmget_osm(2). The MC_LOCK_GRANULE interface of the memc‐
                     ntl() function should be used instead.


       SHM_UNLOCK    Unlock the shared memory segment specified by shmid. This
                     command can be executed only by a process that has appro‐
                     priate privileges.

                     This has no effect on shared memory segments created with
                     shmget_osm(2).  The  MC_UNLOCK_GRANULE  interface  of the
                     memcntl() function should be used instead.



       A shared memory segment  must  be  explicitly  removed  using  IPC_RMID
       before the system can deallocate it and the resources it uses.

RETURN VALUES
       Upon  successful  completion,  0 is returned. Otherwise, −1 is returned
       and errno is set to indicate the error.

ERRORS
       The shmctl() function will fail if:

       EACCES       The cmd argument is equal to IPC_STAT and {READ} operation
                    permission is denied to the calling process.


       EFAULT       The buf argument points to an illegal address.


       EINVAL       The  shmid  argument  is not a valid shared memory identi‐
                    fier; or the cmd argument is not a  valid  command  or  is
                    IPC_SET and shm_perm.uid or shm_perm.gid is not valid.


       ENOMEM       The  cmd  argument  is  equal to SHM_LOCK and there is not
                    enough memory, or the operation would exceed  a  limit  or
                    resource control on locked memory.


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


       EPERM        The cmd argument is equal  to  IPC_RMID  or  IPC_SET,  the
                    effective  user  ID of the calling process is not equal to
                    the value of shm_perm.cuid or  shm_perm.uid  in  the  data
                    structure  associated  with shmid, and {PRIV_IPC_OWNER} is
                    not asserted in the effective set of the calling process.

                    The cmd argument is equal to SHM_LOCK  or  SHM_UNLOCK  and
                    {PRIV_PROC_LOCK_MEMORY}  is  not asserted in the effective
                    set of the calling process.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE  VALUE  _  Interface  StabilityCommitted  _  StandardSee  stan‐
       dards(7).


SEE ALSO
       ipcs(1), Intro(2), shmget(2), shmget_osm(2),  shmop(2),  attributes(7),
       privileges(7), standards(7)



Oracle Solaris 11.4               17 Aug 2018                        shmctl(2)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3