semget(2) System Calls Manual semget(2)
NAME
semget - get set of semaphores
SYNOPSIS
DESCRIPTION
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; how-
ever, 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 associated 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 infor-
mation about compartmentalization on systems that support that feature. Compartmental restrictions can be overridden if the process pos-
sesses the privilege (PRIV_COMMALLOWED). Processes owned by the superuser may not have this privilege. Processes owned by any user may
have this privilege, depending on system configuration.
See privileges(5) for more information about privileged access on systems 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 number of allowed semaphore identifiers system wide would be exceeded.
A semaphore identifier exists for
key but is "true".
SEE ALSO
ipcrm(1), ipcs(1), semctl(2), semop(2), stdipc(3C).
STANDARDS CONFORMANCE
semget(2)