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
which are set by ORing these constants into the
flag
argument:
0400
|
Read access for owner.
|
0200
|
Write access for owner.
|
0040
|
Read access for group.
|
0020
|
Write access for group.
|
0004
|
Read access for other.
|
0002
|
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).