Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > S


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


sem_close — close a named POSIX semaphore


#include <sys/semaphore.h>

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:


The argument sem is not a valid named semaphore.


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.


sem_init(2), sem_open(2), sem_unlink(2), <semaphore.h>.


sem_close(): POSIX

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.