sem_close.2 (2010 09)

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 do the fol-
lowing: 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.
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);
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 had called sem_open() for the same semaphore. Subsequent calls to sem_close()
by the same process for the same semaphore will result in an undefined behavior.
SEE ALSO
sem_init(2), sem_open(2), sem_unlink(2), <semaphore.h>.
STANDARDS CONFORMANCE
sem_close(): POSIX
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)