SHMGET(2) DOMAIN/IX SYS5 SHMGET(2)
NAME
shmget - get shared memory segment
USAGE
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key, size, shmflg)
key_t key;
int size, shmflg;
DESCRIPTION
Shmget returns the shared memory identifier associated with
key.
A shared memory identifier and associated data structure and
shared memory segment of size size bytes (see intro(2)) are
created for key if one of the following is true:
⊕ Key is equal to IPC_PRIVATE.
⊕ Key does not already have a shared memory identifier
associated with it, and
(shmflg & IPC_CREAT)
is "true".
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 low-order 9 bits of shm_perm.mode are set equal to
the low-order 9 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 zero.
⊕ Shm_ctime is set equal to the current time.
RETURN VALUE
A successful shmget returns a non-negative integer shared
memory identifier. A failed call returns -1 and sets errno
as indicated below.
Printed 12/4/86 SHMGET-1
SHMGET(2) DOMAIN/IX SYS5 SHMGET(2)
ERRORS
Shmget will fail if one or more of the following is 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 is not possible.
[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.
[ENOENT] A shared memory identifier does not exist for key
and
(shmflg & IPC_CREAT)
is "false".
[ENOSPC] Creating another shared memory identifier would
exceed the system-imposed limit on the maximum
number of shared memory identifiers allowed at one
time.
[ENOMEM] Insufficient memory is available to create a
shared memory identifier and its associated shared
memory segment.
[EEXIST] A shared memory identifier exists for key but
((shmflg & IPC_CREAT) & (shmflg & IPC_EXCL))
is "true".
RELATED INFORMATION
shmctl(2), shmop(2)
SHMGET-2 Printed 12/4/86