semget(2)semget(2)NAMEsemget - get set of semaphores
SYNOPSISDESCRIPTION
returns the semaphore identifier associated with key.
A semaphore identifier and associated data structure and set containing
nsems semaphores are created for key if one of the following is true:
key is equal to This call creates a new identifier, subject to
available resources. The identifier is never returned by
another call to until it has been released by a call to The
identifier should be used among the calling process and its
descendents; however, it is not a requirement. The resource can
be accessed by any process having the proper permissions.
key does not already have a semaphore identifier associated with
it, and (semflg & is "true".
Specific behavior can be requested by ORing the following masks into
semflg.
Create a semaphore identifier if one does not already exist for
key.
If is specified and key already has a semaphore identifier asso‐
ciated with it, return an error.
The low-order 9 bits of semflg are the semaphore operation permissions
which are defined in glossary(9).
Upon creation, the data structure associated with the new semaphore
identifier is initialized as follows:
In the operation-permission structure, and are set equal to the
effective-user-ID of the calling process, while and are set to
the effective-group-ID of the calling process.
The low-order 9 bits of are set equal to the low-order 9 bits of
semflg.
is set equal to the value of nsems.
is set equal to 0 and is set equal to the current time.
Security Restrictions
Some or all of the actions associated with this system call are subject
to compartmental restrictions. See compartments(5) for more information
about compartmentalization on systems that support that feature. Com‐
partmental restrictions can be overridden if the process possesses the
privilege (PRIV_COMMALLOWED). Processes owned by the superuser may not
have this privilege. Processes owned by any user may have this privi‐
lege, depending on system configuration.
See privileges(5) for more information about privileged access on sys‐
tems that support fine-grained privileges.
EXAMPLES
The following call to returns a semid associated with the key returned
by If a semid associated with the key does not exist, a new semid, set
of 4 semaphores, and associated data structure will be created. If a
semid for the key already exists, the semid is simply returned.
RETURN VALUE
Upon successful completion, a non-negative integer, namely a semaphore
identifier, is returned. Otherwise, a value of −1 is returned and is
set to indicate the error.
ERRORS
fails if one or more of the following is true:
nsems is either less than or equal to zero or greater
than the system-imposed limit.
A semaphore identifier exists for
key, but operation permission as specified by the
low-order 9 bits of semflg would not be granted.
A semaphore identifier exists for
key, but the number of semaphores in the set
associated with it is less than nsems, and nsems
is not equal to zero.
A semaphore identifier does not exist for
key and (semflg & is "false".
A semaphore identifier is to be created,
but the system-imposed limit on the maximum num‐
ber of allowed semaphore identifiers system wide
would be exceeded.
A semaphore identifier exists for
key but is "true".
SEE ALSOipcrm(1), ipcs(1), semctl(2), semop(2), stdipc(3C).
STANDARDS CONFORMANCEsemget(2)