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 In‐
                     tro(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 at‐
                     tached 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  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 asso‐
                     ciated 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 be‐
       fore 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  ef‐
                    fective user ID of the calling process is not equal to the
                    value  of shm_perm.cuid or shm_perm.uid in the data struc‐
                    ture 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