unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Page:
Section:
Apropos / Subsearch:
optional field



 shmctl(2)							   shmctl(2)




 NAME
      shmctl() - shared memory control operations

 SYNOPSIS
      #include <&lt&lt&lt;sys/shm.h>&gt&gt&gt;

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

 DESCRIPTION
      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 Release 11i: November 2000






 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
      shmctl() returns the following values:

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

 ERRORS
      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 Release 11i: November 2000






 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
      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
      shmctl() was developed by AT&T and HP.

 SEE ALSO
      ipcrm(1), ipcs(1), shmget(2), shmop(2), stdipc(3C).

 STANDARDS CONFORMANCE
      shmctl(): SVID2, SVID3, XPG2, XPG3, XPG4



























 Hewlett-Packard Company	    - 3 -   HP-UX Release 11i: November 2000