*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->HP-UX 11i man pages -> shmctl (2)              
Title
Content
Arch
Section
 

Contents


 shmctl(2)                                                         shmctl(2)




 NAME    [Toc]    [Back]
      shmctl() - shared memory control operations

 SYNOPSIS    [Toc]    [Back]
      #include <sys/shm.h>

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

 DESCRIPTION    [Toc]    [Back]
      The shmctl() system call provides a variety of shared memory control
      operations as specified by the cmd argument.  cmd can have the
      following values:

           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 glossary(9).

           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  /* only low 9 bits */

                          This cmd can only be executed by a process that
                          has an effective user ID equal to either that of a
                          user having appropriate privileges or to the value
                          of either shm_perm.uid or shm_perm.cuid in the
                          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 data structure associated with
                          it.  If the segment is attached to one or more
                          processes, then the segment key is changed to
                          IPC_PRIVATE and the segment is marked removed.
                          The segment disappears when the last attached
                          process detaches it.  This cmd can only be
                          executed by a process that has an effective user
                          ID equal to either that of a user with appropriate
                          privileges or to the value of either shm_perm.uid
                          or shm_perm.cuid in the data structure associated
                          with shmid.

           SHM_LOCK       Lock the shared memory segment specified by shmid
                          in memory.  This cmd can only be executed by a
                          process that either has an effective user ID equal
                          to that of a user having appropriate privileges or



 Hewlett-Packard Company            - 1 -   HP-UX 11i Version 2: August 2003






 shmctl(2)                                                         shmctl(2)




                          has an effective user ID equal to the value of
                          either shm_perm.uid or shm_perm.cuid in the data
                          structure associated with shmid and has the
                          PRIV_MLOCK privilege (see getprivgrp(2)).

           SHM_UNLOCK     Unlock the shared memory segment specified by
                          shmid.  This cmd can only be executed by a process
                          that either has an effective user ID equal to a
                          user having appropriate privileges or has an
                          effective user ID equal to the value of either
                          shm_perm.uid or shm_perm.cuid in the data
                          structure associated with shmid and has the
                          PRIV_MLOCK privilege (see getprivgrp(2)).

 RETURN VALUE    [Toc]    [Back]
      shmctl() returns the following values:

            0   Successful completion.
           -1   Failure.  errno is set to indicate the error.

 ERRORS    [Toc]    [Back]
      If shmctl() fails, errno is set to one of the following values.

           [EACCES]       cmd is equal to IPC_STAT and Read operation
                          permission is denied to the calling process (see
                          shared memory operation permissions in
                          glossary(9)).

           [EFAULT]       buf points to an illegal address.  The reliable
                          detection of this error is implementation
                          dependent.

           [EINVAL]       cmd is equal to SHM_UNLOCK and the shared-memory
                          segment specified by shmid is not locked in
                          memory.

           [EINVAL]       shmid is not a valid shared memory identifier.

           [EINVAL]       cmd is not a valid command, or the command
                          contains invalid parameters.

           [ENOMEM]       cmd is equal to SHM_LOCK and there is not
                          sufficient lockable memory to fill the request.

           [EPERM]        cmd is equal to IPC_RMID, IPC_SET, SHM_LOCK, or
                          SHM_UNLOCK and the effective user ID of the
                          calling process is not equal to that of a user
                          having appropriate privileges and it is not equal
                          to the value of either shm_perm.uid or
                          shm_perm.cuid in the data structure associated
                          with shmid.



 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003






 shmctl(2)                                                         shmctl(2)




           [EPERM]        cmd is equal to SHM_LOCK or SHM_UNLOCK and the
                          effective user ID of the calling process is not
                          equal to that of a user having appropriate
                          privileges and the calling process does not have
                          the PRIV_MLOCK privilege (see getprivgrp(2)).

 EXAMPLES    [Toc]    [Back]
      The following call to shmctl() locks in memory the shared memory
      segment represented by myshmid.  This example assumes the process has
      a valid shmid, which can be obtained by calling shmget(2).

           shmctl (myshmid, SHM_LOCK, 0);

      The following call to shmctl() removes the shared memory segment
      represented by myshmid.  This example assumes the process has a valid
      shmid, which can be obtained by calling shmget() (see shmget(2).

           shmctl (myshmid, IPC_RMID, 0);

 AUTHOR    [Toc]    [Back]
      shmctl() was developed by AT&T and HP.

 SEE ALSO    [Toc]    [Back]
      ipcrm(1), ipcs(1), shmget(2), shmop(2), stdipc(3C).

 STANDARDS CONFORMANCE    [Toc]    [Back]
      shmctl(): SVID2, SVID3, XPG2, XPG3, XPG4


 Hewlett-Packard Company            - 3 -   HP-UX 11i Version 2: August 2003
[ Back ]
      
      
 Similar pages
Name OS Title
shmctl Tru64 Perform shared memory control operations
shmctl FreeBSD shared memory control
shmctl Linux shared memory control
shmop Linux shared memory operations
shmat HP-UX shared memory operations
shmdt HP-UX shared memory operations
shmop IRIX shared memory operations
shmop HP-UX shared memory operations
shm_open FreeBSD open or create a shared memory object shm_unlink -- remove a shared memory object
shmdt OpenBSD map/unmap shared memory
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service