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

sem_close(2)

HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

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 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.

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 previous 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 encountered:

[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

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