|
SHMGET (2) | System calls | Unix Manual Pages | :man▋
NAME
shmget - obtain a shared memory identifier
CONTENTS
Library Synopsis Description Return Values Errors
LIBRARY
.Lb libc
SYNOPSIS
.In machine/param.h .In sys/types.h .In sys/ipc.h .In sys/shm.h int shmget "key_t key" "size_t size" "int flag"
DESCRIPTION
Based on the values of key and flag, shmget returns the identifier of a newly created or previously existing shared memory segment. The key is analogous to a filename: it provides a handle that names an IPC object. There are three ways to specify a key: - IPC_PRIVATE may be specified, in which case a new IPC object will be created.
- An integer constant may be specified. If no IPC object corresponding to key is specified and the IPC_CREAT bit is set in flag, a new one will be created.
- The ftok(3) may be used to generate a key from a pathname.
The mode of a newly created IPC object is determined by OR ing the following constants into the flag argument: | SHM_R | Read access for user. | | SHM_W | Write access for user. | | ( SHM_R>>3) | | | Read access for group. | | ( SHM_W>>3) | | | Write access for group. | | ( SHM_R>>6) | | | Read access for other. | | ( SHM_W>>6) | | | Write access for other. | |
When creating a new shared memory segment, size indicates the desired size of the new segment in bytes. The size of the segment may be rounded up to a multiple convenient to the kernel (i.e., the page size).
RETURN VALUES
Upon successful completion, shmget returns the positive integer identifier of a shared memory segment. Otherwise, -1 is returned and errno set to indicate the error.
ERRORS
The shmget system call will fail if: | [EINVAL] | | | Size specified is greater than the size of the previously existing segment. Size specified is less than the system imposed minimum, or greater than the system imposed maximum. | | [ENOENT] | | | No shared memory segment was found matching key, and IPC_CREAT was not specified. | | [ENOSPC] | | | The kernel was unable to allocate enough memory to satisfy the request. | | [EEXIST] | | | IPC_CREAT and IPC_EXCL were specified, and a shared memory segment corresponding to key already exists. | |
"SEE ALSO"
shmat(2), shmctl(2), shmdt(2), ftok(3)
|