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

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

Contents


shmget(2)							     shmget(2)


NAME    [Toc]    [Back]

     shmget - get shared memory	segment	identifier

SYNOPSIS    [Toc]    [Back]

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

     int shmget(key_t key, size_t size,	int shmflg);

DESCRIPTION    [Toc]    [Back]

     shmget returns the	shared memory identifier associated with key.

     A shared memory identifier	and associated data structure and shared
     memory segment of at least	size bytes [see	intro(2)] are created for key
     if	one of the following are true:

	  key is equal to IPC_PRIVATE.

	  key does not already have a shared memory identifier associated with
	  it, and (shmflg<b>&IPC_CREAT) is	true.

     Upon creation, the	contents of the	shared memory segment are initialized
     to	zero, and the data structure associated	with the new shared memory
     identifier	is initialized as follows:

	  shm_perm.cuid, shm_perm.uid, shm_perm.cgid, and shm_perm.gid are set
	  equal	to the effective user ID and effective group ID, respectively,
	  of the calling process.

	  The access permission	bits of	shm_perm.mode are set equal to the
	  access permission bits of shmflg.  shm_segsz is set equal to the
	  value	of size.

	  shm_lpid, shm_nattch shm_atime, and shm_dtime	are set	equal to 0.

	  shm_ctime is set equal to the	current	time.



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

     EINVAL	    size is less than the system-imposed minimum or greater
		    than the system-imposed maximum.

     EACCES	    A shared memory identifier exists for key but operation
		    permission [see intro(2)] as specified by the low-order 9
		    bits of shmflg would not be	granted.

     EINVAL	    A shared memory identifier exists for key but the size of
		    the	segment	associated with	it is less than	size and size
		    is not equal to zero.



									Page 1






shmget(2)							     shmget(2)



     ENOENT	    A shared memory identifier does not	exist for key and
		    (shmflg<b>&IPC_CREAT) is false.

     ENOSPC	    A shared memory identifier is to be	created	but the
		    system-imposed limit on the	maximum	number of allowed
		    shared memory identifiers system wide would	be exceeded.

     ENOMEM	    A shared memory identifier and associated shared memory
		    segment are	to be created but the amount of	available
		    memory is not sufficient to	fill the request.

     EEXIST	    A shared memory identifier exists for key but both
		    (shmflg<b>&IPC_CREAT) and (shmflg<b>&IPC_EXCL) are true.

SEE ALSO    [Toc]    [Back]

      
      
     intro(2), shmctl(2), shmop(2), stdipc(3C),	ipcs(1), ipcrm(1).

DIAGNOSTICS    [Toc]    [Back]

     Upon successful completion, a non-negative	integer, namely	a shared
     memory identifier 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
shmget NetBSD get shared memory segment
shmget HP-UX get shared memory segment
shmget Linux allocates a shared memory segment
shmmax HP-UX maximum size (in bytes) for a System V shared memory segment
shmget FreeBSD obtain a shared memory identifier
shmget OpenBSD get shared memory area identifier
ipcrm HP-UX remove a message queue, semaphore set, or shared memory identifier
shmmni HP-UX number of System V shared memory segment identifiers in the system
shm_open FreeBSD open or create a shared memory object shm_unlink -- remove a shared memory object
mlock HP-UX lock a segment of the process virtual address space in memory
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service