sem_unlink(3R) manual page
Table of Contents
sem_unlink - remove a named semaphore
cc [ flag ... ] file ...
-lposix4 [ library ... ]
#include <semaphore.h>
int sem_unlink(const char *name);
MT-Safe
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.
If successful, sem_unlink() returns 0; otherwise,
the function returns -1, sets errno to indicate the error condition, and
the semaphore is left unchanged.
- 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.
exec(2)
, exit(2)
, sem_close(3R)
,
sem_open(3R)
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