SHMGET(2) BSD System Calls Manual SHMGET(2)
shmget -- obtain a shared memory identifier
Standard C Library (libc, -lc)
shmget(key_t key, size_t size, int flag);
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:
o IPC_PRIVATE may be specified, in which case a new IPC object will be created.
o 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.
o 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:
S_IRUSR Read access for owner.
S_IWUSR Write access for owner.
S_IRGRP Read access for group.
S_IWGRP Write access for group.
S_IROTH Read access for other.
S_IWOTH 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).
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.
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.
shmat(2), shmctl(2), shmdt(2), stat(2), ftok(3)
December 17, 2010 BSD