MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


System Calls                                            shmctl(2)



NAME
     shmctl - shared memory control operations

SYNOPSIS
     #include 
     #include 
     #include 

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


DESCRIPTION
     The shmctl() function provides a variety  of  shared  memory
     control  operations  as  specified  by  cmd.  The permission
     required for a shared memory control operation is  given  as
     {token},  where  token is the type of permission 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:

     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  /* access permission bits only */

                   This command can be executed only by a process
                   that  has  appropriate privileges or an effec-
                   tive  user  ID   equal   to   the   value   of
                   shmperm.cuid  or   shmperm.uid  in  the data



SunOS 5.11          Last change: 10 Apr 2007                    1






System Calls                                            shmctl(2)



                   structure associated with shmid.


     IPCRMID      Remove the shared memory identifier  specified
                   by  shmid  from the system. The segment refer-
                   enced 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
                   IPCRMID 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
                   shmperm.cuid  or  shmperm.uid  in  the  data
                   structure 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   appropriate
                   privileges.


     SHMUNLOCK    Unlock the shared memory segment specified  by
                   shmid.  This command can be executed only by a
                   process that has appropriate privileges.



     A shared memory segment must  be  explicitly  removed  using
     IPCRMID  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.

ERORS
     The shmctl() function will fail if:

     EACES       The cmd  argument  is  equal  to  IPCSTAT  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
                  identifier;  or the cmd argument is not a valid
                  command  or  is  IPCSET  and  shmperm.uid  or
                  shmperm.gid is not valid.



SunOS 5.11          Last change: 10 Apr 2007                    2






System Calls                                            shmctl(2)



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


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


     EPERM        The  cmd  argument  is  equal  to  IPCRMID  or
                  IPCSET,  the  effective user ID of the calling
                  process  is  not  equal   to   the   value   of
                  shmperm.cuid   or  shmperm.uid  in  the  data
                  structure   associated    with    shmid,    and
                  {PRIVIPCOWNER}  is not asserted in the effec-
                  tive set of the calling process.

                  The  cmd  argument  is  equal  to  SHMLOCK  or
                  SHMUNLOCK  and  {PRIVPROCLOCKMEMORY} is not
                  asserted in the effective set  of  the  calling
                  process.


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Standard                    
    


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














SunOS 5.11          Last change: 10 Apr 2007                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™