---
name: "mq_unlink"
section: "2"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/mq_unlink/3"
---

# mq\_unlink(2)

remove a message queue

Part of [mq\_unlink(3)](/mq_unlink/3.md).

## NAME

mq\_unlink - remove a message queue

## LIBRARY

Real-time library (*librt*, *-lrt*)

## SYNOPSIS

```
#include <mqueue.h>
```

**int mq\_unlink(const char \****name***);**

## DESCRIPTION

**mq\_unlink**() removes the specified message queue *name*. The message queue name is removed immediately. The queue itself is destroyed once any other processes that have the queue open close their descriptors referring to the queue.

## RETURN VALUE

On success **mq\_unlink**() returns 0; on error, -1 is returned, with *errno* set to indicate the error.

## ERRORS

- **EACCES**

  The caller does not have permission to unlink this message queue.

- **ENAMETOOLONG**

  *name* was too long.

- **ENOENT**

  There is no message queue with the given *name*.

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **mq\_unlink**() | Thread safety | MT-Safe |

## STANDARDS

POSIX.1-2008.

## HISTORY

POSIX.1-2001.

## SEE ALSO

[**mq\_close**(3)](/mq_close/3.md), [**mq\_getattr**(3)](/mq_getattr/3.md), [**mq\_notify**(3)](/mq_notify/3.md), [**mq\_open**(3)](/mq_open/3.md), [**mq\_receive**(3)](/mq_receive/3.md), [**mq\_send**(3)](/mq_send/3.md), [**mq\_overview**(7)](/mq_overview/7.md)
