---
name: "sem_unlink"
section: "2"
platform: "macos"
package: "xnu"
version: "12377.121.6"
release: "macOS 26.5"
platforms: ["macos"]
url: "https://new.carta.tech/sem_unlink"
---

# sem\_unlink(2)

remove a named semaphore

## NAME

**sem\_unlink** – remove a named semaphore

## SYNOPSIS

**#include \<semaphore.h\>**

*int*\

**sem\_unlink**(*const char \*name*);

## DESCRIPTION

The named semaphore named *name* is removed.  If the semaphore is in use by other processes, then *name* is immediately disassociated with the semaphore, but the semaphore itself will not be removed until all references to it have been closed.  Subsequent calls to **sem\_open**() using *name* will refer to or create a new semaphore named *name*.

If successful, **sem\_unlink**() will return 0.  Otherwise, -1 is returned and *errno* is set, and the state of the semaphore is unchanged.

## ERRORS

**sem\_unlink**() succeeds unless:

- \[EACCES\]

  Permission is denied to be remove the semaphore.

- \[ENAMETOOLONG\]

  *name* exceeded PSEMNAMLEN characters.

- \[ENOENT\]

  The named semaphore does not exist.

## SEE ALSO

[sem\_close(2)](/sem_close/2.md), [sem\_open(2)](/sem_open/2.md), [semctl(2)](/semctl/2.md), [semget(2)](/semget/2.md), [semop(2)](/semop/2.md)

## HISTORY

**sem\_unlink**() is specified in the POSIX Realtime Extension (1003.1b-1993/1003.1i-1995).
