mq_close()

Updated: April 19, 2023

Close a message queue

Synopsis:

#include <mqueue.h>

int mq_close( mqd_t mqdes );

Arguments:

mqdes
The message-queue descriptor, returned by mq_open(), of the message queue that you want to close.

Library:

Description:

The mq_close() function removes the association between mqdes and a message queue. If the current process attaches a notify to this queue for notification, the attachment is eliminated. If this queue is unlinked before the call to mq_close(), and this process is the last process to call mq_close() on the queue, then the queue is destroyed, along with its contents.

Note: The message queue manager needs to be running. QNX Neutrino supports two implementations of message queues: a traditional implementation and an alternate one that uses the mq server and a queue in kernel space. For more information, see the entries for mq and mqueue in the Utilities Reference, as well as the POSIX Message Queues: Two Implementations technote.

In the traditional (mqueue) implementation, calling close() with mqdes has the same effect as calling mq_close().

Returns:

-1 if an error occurred (errno is set). Any other value indicates success.

Errors:

EBADF
Invalid queue mqdes.

Examples:

See the example for mq_open().

Classification:

POSIX 1003.1 MSG

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes