msem_lock(2)msem_lock(2)NAMEmsem_lock() - lock a semaphore
SYNOPSISDESCRIPTION
attempts to lock a binary semaphore.
sem points to an structure which specifies the semaphore to be locked.
If the semaphore is not currently locked, it becomes locked and the
function returns successfully.
If the semaphore is currently locked, and condition is then the func‐
tion returns with an error. If the semaphore is currently locked and
condition is zero, the function does not return until either the call‐
ing process is able to successfully lock the semaphore, or an error
condition occurs.
All calls to and by multiple processes sharing a common structure
behave as if the calls were serialized.
If the structure contains any value not resulting from a call to fol‐
lowed by a (possibly empty) sequence of calls to and the results are
undefined. The address of an uniquely identifies the semaphore. If
the structure contains any value copied from an structure at a differ‐
ent address, the result is undefined.
IMPLEMENTATION NOTES
If blocked on a locked semaphore, suspends the calling process at a
priority such that the process can be interrupted by a signal.
The system attempts to ignore or recover from invalid values written to
the structure, but this is not guaranteed for all cases.
successfully acquires a semaphore that is locked by a process that has
exited.
RETURN VALUE
returns one of the following values:
Success.
Failure.
is set to indicate the error.
ERRORS
sets to one of the following values if the corresponding condition is
encountered.
was specified and the semaphore was already locked.
sem points to an structure that has been removed, or
condition is invalid.
was interrupted by a signal that was caught.
The semaphore is currently locked,
condition is zero, and waiting to lock the sema‐
phore would create a deadlock.
sem is not a properly aligned address or is otherwise
an invalid pointer.
AUTHOR
was developed by HP and OSF.
SEE ALSOmsem_init(2), msem_remove(2), msem_unlock(2), mman(5).
STANDARDS CONFORMANCEmsem_lock(2)