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

  man pages->IRIX man pages -> standard/shmctl (2)              
Title
Content
Arch
Section
 

Contents


shmctl(2)							     shmctl(2)


NAME    [Toc]    [Back]

     shmctl - shared memory control operations

SYNOPSIS    [Toc]    [Back]

     #include <sys/types.h>
     #include <sys/ipc.h>
     #include <sys/shm.h>

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

DESCRIPTION    [Toc]    [Back]

     shmctl provides a variety of shared memory	control	operations as
     specified by cmd.	The following cmds are available:

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

		 This command can be executed only by a	process	that has an
		 effective user	ID equal to the	value of shm_perm.cuid or
		 shm_perm.uid in the data structure associated with shmid or
		 to a process that has the super-user privilege.

     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.	This command can be executed
		 only by a process that	has an effective user ID equal to the
		 value of shm_perm.cuid	or shm_perm.uid	in the data structure
		 associated with shmid or to a process that has	the super-user
		 privilege.

     SHM_LOCK	 Lock the shared memory	segment	specified by shmid in memory.
		 This command can be executed only by a	process	that has the
		 super-user privilege.	Locking	occurs per address space;
		 multiple processes or sprocs mapping the area at different
		 addresses each	need to	issue the lock (this is	primarily an
		 issue with the	per-process page tables).

     SHM_UNLOCK	 Unlock	the shared memory segment specified by shmid.  This
		 command can be	executed only by a process that	has the
		 super-user privilege.





									Page 1






shmctl(2)							     shmctl(2)



     shmctl fails if one or more of the	following are true:

     EACCES	 cmd is	equal to IPC_STAT and {READ} operation permission is
		 denied	to the calling process [see intro(2)].

     EINVAL	 shmid is not a	valid shared memory identifier.

     EINVAL	 cmd is	not a valid command.

     EINVAL	 cmd is	IPC_SET	and shm_perm.uid or shm_perm.gid is not	valid.

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

     EPERM	 cmd is	equal to IPC_RMID or IPC_SET and the effective user is
		 not equal to the value	of shm_perm.cuid or shm_perm.uid in
		 the data structure associated with shmid and the process does
		 not have the super-user privilege.

     EPERM	 cmd is	equal to SHM_LOCK or SHM_UNLOCK	and the	calling
		 process does not have the super-user privilege.

     EFAULT	 buf points to an illegal address.

     ENOMEM	 cmd is	equal to SHM_LOCK and there is not enough memory.

SEE ALSO    [Toc]    [Back]

      
      
     shmget(2),	shmop(2).

DIAGNOSTICS    [Toc]    [Back]

     Upon successful completion, a value of 0 is returned. Otherwise, a	value
     of	-1 is returned and errno is set	to indicate the	error.

NOTES    [Toc]    [Back]

     The user must explicitly remove shared memory segments after the last
     reference to them has been	removed.


									PPPPaaaaggggeeee 2222
[ 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