Удалить очередь
#include <mqueue.h>int mq_unlink( const char *name );
Функция mq_unlink() удаляет очередь с заданным именем name.
Нейтрино поддерживает две реализации очередей сообщений: классическую реализацию и альтернативную, использующую асинхронные сообщения. Для дополнительной информации см. документацию по mq и mqueue. |
Если процесс имеет открытую на момент вызова mq_unlink() очередь, фактическое удаление очереди произойдёт только после её закрытия. Если между запросом на удаление и фактическим удалением очереди она продолжает существовать, все вызовы для открытия очереди с заданным именем потерпят неудачу (даже если флаг O_CREAT
присутствует в oflag). После удаления очереди все находящиеся в ней элементы удаляются. Из-за того, что удаление очередей происходит не моментально, невозможно заблокировать какой-либо процесс в очереди сообщений при ее удалении.
Вызов функции unlink() с именем очереди, которое представляется как пространство имён сервера очереди сообщений (например /dev/mqueue/my_queue
) аналогично вызову функции mq_unlink() с параметром name, содержащим последний элемент пути (например my_queue).
PATH_MAX
. POSIX 1003.1 Message Passing
mq_close(), mq_open(), unlink()
mq, mqueue в Справочнике по Утилитам
Предыдущий раздел: Описание API системной библиотеки