Based on the values of
key
and
flag,
semget()
returns the identifier of a newly created or previously existing
set of semaphores.
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)
function
may be used to generate a key from a pathname.
The mode of a newly created IPC object is determined by ORing these constants
into the
flag
argument:
0400
|
Read access for user.
|
0200
|
Alter access for user.
|
0040
|
Read access for group.
|
0020
|
Alter access for group.
|
0004
|
Read access for other.
|
0002
|
Alter access for other.
|
If a new set of semaphores is being created,
nsems
is used to indicate the number of semaphores the set should contain.
Otherwise,
nsems
may be specified as 0.