mq_close()

Закрыть очередь сообщений

Прототип:

#include <mqueue.h>
int mq_close( mqd_t mqdes );

Аргументы:

mqdes
Дескриптор очереди сообщений, возвращаемый функцией mq_open(), которую необходимо закрыть.

Библиотека:

Описание:

Функция mq_close() уничтожает связь между дескриптором mqdes и очередью сообщений. Если текущий процесс прикрепляет уведомление к этой очереди для его отправки, уведомление уничтожается. Если для этой очереди было запрошено удаление (функцией mq_unlink()) до вызова функции mq_close(), и этот процесс является последним процессом, в котором может быть вызвана функция mq_close() для данной очереди, то очередь уничтожается вместе со своим содержимым.


Note: Нейтрино поддерживает две реализации очередей сообщений: классическую реализацию и альтернативную, использующую асинхронные сообщения. Для дополнительной информации см. документацию по mq и mqueue.

В классической реализации ( mqueue), вызов функции close() с дескриптором mqdes аналогичен вызову функции mq_close().

Возвращаемое значение:

-1
Возникла ошибка. Код ошибки записан в errno.
≠-1
Успешное завершение.

Коды ошибок:

EBADF
Недопустимая очередь, заданная параметром mqdes.

Классификация:

POSIX 1003.1 Message Passing

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

mq_open(), mq_unlink()

mq, mqueue в Справочнике по Утилитам




Предыдущий раздел: Описание API системной библиотеки