unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

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
                       structure 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
                       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  /* 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  identi-
                       fier will be destroyed when all processes with the seg-
                       ment 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  immedi-
                       ately.  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.



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



       SHM_UNLOCK      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  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} opera-
                       tion 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.



       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 effec-
                       tive set of the calling process.



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


       tab()    allbox;    cw(2.750000i)|     cw(2.750000i)     lw(2.750000i)|
       lw(2.750000i).   ATTRIBUTE TYPEATTRIBUTE VALUE Interface StabilityStan-
       dard


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



SunOS 5.10                        1 Feb 2003                         shmctl(2)