Skip to content

mq_close() / mq_unlink()

Purpose

Closes a POSIX message queue descriptor and removes a named queue.

#include <mqueue.h>

Prototype

int mq_close(mqd_t mqdes);
int mq_unlink(const char *name);

Parameters

  • mqdes: open message queue descriptor.
  • name: queue name such as /demo_queue.

Return Value

  • Success: returns 0.
  • Failure: returns -1 and sets errno.

Minimal Example

mq_close(mq);
mq_unlink("/demo_queue");

Common Pitfalls

  • mq_close() only closes the descriptor in the current process.
  • mq_unlink() removes the name; the queue is destroyed after all descriptors are closed.
  • Clean stale queues during test setup if needed.