SHMGET(2) DOMAIN/IX Reference Manual (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 pro-
cess.
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
Upon successful completion, shmget returns a non-negative
integer, the shared memory identifier. Otherwise, it
returns -1 and sets errno to indicate the error.
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.
Printed 5/10/85 SHMGET-1
SHMGET(2) DOMAIN/IX Reference Manual (SYS5) SHMGET(2)
[EACCES] A shared memory identifier exists for key but
operation permission (see intro(2)) as speci-
fied 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) and ( shmflg &
IPC_EXCL) ) is ``true''.
RELATED INFORMATION
shmctl(2), shmop(2)
SHMGET-2 Printed 5/10/85