obtain a shared memory identifier
Standard C Library (libc, -lc)
Based on the values of key
() 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
- 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
may be used to generate a key from a pathname.
The mode of a newly created IPC object is determined by which are set by ORing
these constants into the flag
- Read access for owner.
- Write access for owner.
- Read access for group.
- Write access for group.
- Read access for other.
- 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
Upon successful completion,
the positive integer identifier of a shared memory segment. Otherwise, -1 is
returned and errno
set to indicate the error.
() system call will fail if:
- 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.
- No shared memory segment was found matching
key, and IPC_CREAT was not
- The kernel was unable to allocate enough memory to satisfy the
- IPC_CREAT and IPC_EXCL were specified, and a shared memory segment
corresponding to key already exists.