HP-UX Reference (11i v2 07/12) - 2 System Calls (vol 5)

s
sem_close(2) sem_close(2)
NAME
sem_close() - close a named POSIX semaphore
SYNOPSIS
#include <sys/semaphore.h>
int sem_close(sem_t *sem);
DESCRIPTION
sem_close() is used to close a named semaphore. A successful call to
sem_close() will remove the
process’s descriptor for 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 sema-
phore.
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.
RETURN VALUE
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.
ERRORS
sem_close() fails and does not perform the requested operation if the following condition is encoun-
tered:
[EINVAL] The argument sem is not a valid named semaphore.
WARNINGS
A single sem_close() call will make the semaphore unusable by the process no matter how many times
that process has called sem_open() for the same semaphore. Subsequent calls to sem_close() by the
same process for the same semaphore will result in undefined behavior.
EXAMPLES
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 previ-
ous
sem_unlink() and there are no descriptors referencing it.
sem_close(sem);
SEE ALSO
sem_init(2), sem_open(2), sem_unlink(2), <semaphore.h>.
STANDARDS CONFORMANCE
sem_close() : POSIX
342 Hewlett-Packard Company 1 HP-UX 11i Version 2: December 2007 Update