[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    sem_unlink(3R) manual page Table of Contents

Name

sem_unlink - remove a named semaphore

Synopsis

cc [ flag ... ] file ... -lposix4 [ library ... ]

#include <semaphore.h>

int sem_unlink(const char *name);

MT-Level

MT-Safe

Description

sem_unlink() removes the semaphore named by the string name. If the semaphore, name, is currently referenced by other processes, then sem_unlink() has no effect on the state of the semaphore. If one or more processes have the semaphore open when sem_unlink() is called, destruction of the semaphore is postponed until all references to the semaphore have been destroyed by calls to sem_close(3R) , exit(2) , or exec(2) . Calls to sem_open(3R) to re-create or re-connect to the semaphore will refer to a new semaphore after sem_unlink() is called. sem_unlink() does not block until all references have been destroyed; rather, it returns immediately.

Return Values

If successful, sem_unlink() returns 0; otherwise, the function returns -1, sets errno to indicate the error condition, and the semaphore is left unchanged.

Errors

EACCES
Permission is denied to unlink the named semaphore.
ENAMETOOLONG
The string-length of name exceeds {PATH_MAX}, or a pathname component is longer than {NAME_MAX} while _POSIX_NO_TRUNC is in effect.
ENOENT
The named semaphore does not exist.
ENOSYS
sem_unlink() is not supported by this implementation.

See Also

exec(2) , exit(2) , sem_close(3R) , sem_open(3R)

Bugs

In Solaris 2.5, these functions always return -1 and set errno to ENOSYS, because this release does not support the Semaphores option. It is our intention to provide support for these interfaces in future releases.


Table of Contents