sem_close - close a named POSIX semaphore
int sem_close(sem_t *sem);
sem_close() is used to close a named semaphore. A successful call to
sem_close() will do the following: Remove the process's descriptor for
the semaphore referenced by the specified sem_t structure sem. Remove
the semaphore referenced by the specified sem_t structure sem, if the
semaphore is marked for removal by a call to sem_unlink() and there
are no other descriptors referencing this semaphore.
When the process's descriptor for the semaphore referenced by sem is
removed, subsequent use of this semaphore by this process will fail.
Descriptors for named semaphores are also removed by processes on
exit. Calling sem_close() does not affect other processes referencing
the same semaphore.
To use this function, link in the realtime library by specifying -lrt
on the compiler or linker command line.
The following call to sem_close() will close a named semaphore
referred to by sem by removing the process's descriptor to the
semaphore and removing the semaphore if it is marked for removal by a
previous sem_unlink() and there are no descriptors referencing it.
If the semaphore was closed and the descriptors referencing it were
removed, sem_close() returns 0 to the caller.
If the semaphore could not be closed, the call returns -1 and sets
errno to indicate the error.
sem_close() fails and does not perform the requested operation if the
following condition is encountered:
[EINVAL] The argument sem is not a valid named semaphore.
sem_init(2), sem_open(2), sem_unlink(2), <semaphore.h>.
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000