sem_unlink
removes the semaphore pointed to by name.
If 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,
_exit, or exec.
Calls to sem_open
to re-create or re-connect to the semaphore refer
to a new semaphore after
sem_unlink is called.
sem_unlink
does not block until all references have
been destroyed; it returns immediately.
Return values
sem_unlink
returns 0 on success.
Otherwise, the semaphore is not changed and the
function returns a value of -1 and sets
errno
to indicate the error.
Diagnostics
sem_unlink returns the following
value if the corresponding condition is detected:
EACCES
Permission is denied to unlink the named semaphore.
ENAMETOOLONG
The length of
name
exceeds {NAME_MAX}
while {POSIX_NO_TRUNC} is in effect.
ENOENT
name does not exist.
Standards compliance
The Single UNIX Specification, Version 2; The Open Group.