cc [ flag... ] file... -lrt [ library... ] #include <mqueue.h>
int mq_close(mqd_t mqdes);
The mq_close() function removes the association between the message queue descriptor, mqdes, and its message queue. The results of using this message queue descriptor after successful return from this mq_close(), and until the return of this message queue descriptor from a subsequent mq_open(3RT), are undefined.
If the process (or thread) has successfully attached a notification request to the message queue via this mqdes, this attachment is removed and the message queue is available for another process to attach for notification.
Upon successful completion, mq_close() returns 0; otherwise, the function returns -1 and sets errno to indicate the error condition.
The mq_close() function will fail if:
EBADF The mqdes argument is an invalid message queue descriptor.
ENOSYS The mq_open() function is not supported by the system.
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
mqueue.h(3HEAD), mq_notify(3RT), mq_open(3RT), mq_unlink(3RT), attributes(5), standards(5)
Solaris 2.6 was the first release to support the Asynchronous Input and Output option. Prior to this release, this function always returned -1 and set errno to ENOSYS.