mq_unlink — remove a message queue


#include <mqueue.h>

int mq_unlink(const char *name);

Link with -lrt.


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.



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


name was too long.


There is no message queue with the given name.


For an explanation of the terms used in this section, see attributes(7).

Interface Attribute Value
mq_unlink() Thread safety MT-Safe

Conforming to

POSIX.1-2001, POSIX.1-2008.

See Also

mq_close(3), mq_getattr(3), mq_notify(3), mq_open(3), mq_receive(3), mq_send(3), mq_overview(7)


This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at

Referenced By

mq_close(3), mq_getattr(3), mq_notify(3), mq_open(3), mq_overview(7), mq_receive(3), mq_send(3), syscalls(2).

The man page mq_unlink(2) is an alias of mq_unlink(3).

2015-08-08 Linux Programmer's Manual