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

  man pages->OpenBSD man pages -> shmget (2)              



NAME    [Toc]    [Back]

     shmget - get shared memory area identifier

SYNOPSIS    [Toc]    [Back]

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

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

DESCRIPTION    [Toc]    [Back]

     shmget() returns the  shared  memory  identifier  associated
with the key

     A shared memory segment is created if either key is equal to
     or key does not have a shared memory segment identifier  associated with
     it, and the IPC_CREAT bit is set in shmflg.

     If  a  new shared memory segment is created, the data structure associated
     with it (the shmid_ds structure, see shmctl(2)) is  initialized as follows:

     +o    shm_perm.cuid and shm_perm.uid are set to the effective
uid of the
         calling process.

     +o   shm_perm.gid and shm_perm.cgid are set to the  effective
gid of the
         calling process.

     +o   shm_perm.mode is set to the lower 9 bits of shmflg.

     +o    shm_lpid,  shm_nattch, shm_atime, and shm_dtime are set
to 0.

     +o   shm_ctime is set to the current time.

     +o   shm_segsz is set to the value of size.

RETURN VALUES    [Toc]    [Back]

     Upon successful completion a positive shared memory  segment
identifier is
     returned.  Otherwise, -1 is returned and the global variable
errno is set
     to indicate the error.

ERRORS    [Toc]    [Back]

     [EACCES]      A shared memory segment is already  associated
with key and
                   the caller has no permission to access it.

     [EEXIST]      Both IPC_CREAT and IPC_EXCL are set in shmflg,
and a shared
                   memory segment is already associated with key.

     [ENOSPC]       A  new  shared memory identifier could not be
created because
                   the system limit for the number of shared memory identifiers
 has been reached.

     [ENOENT]       IPC_CREAT was not set in shmflg and no shared
memory segment
 associated with key was found.

     [ENOMEM]      There is not enough memory left  to  create  a
shared memory
                   segment of the requested size.

SEE ALSO    [Toc]    [Back]

     ipcrm(1), ipcs(1), mmap(2), shmat(2), shmctl(2), ftok(3)

OpenBSD      3.6                          August     17,     1995
[ Back ]
 Similar pages
Name OS Title
shmget IRIX get shared memory segment identifier
shmget FreeBSD obtain a shared memory identifier
ipcrm HP-UX remove a message queue, semaphore set, or shared memory identifier
shm_open FreeBSD open or create a shared memory object shm_unlink -- remove a shared memory object
memmove Linux copy memory area
memcpy Linux copy memory area
memccpy Linux copy memory area
memfrob Linux frobnicate (encrypt) a memory area
ufmFree IRIX free an area of memory that was allocated by UFM
shmget HP-UX get shared memory segment
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service