Как удалить или удалить все сообщения из очереди сообщений POSIX в c? - PullRequest
2 голосов
/ 08 января 2020

Я хочу удалить все сообщения из очереди сообщений POSIX. Я искал на inte rnet, но не нашел способа сделать это, вместо этого я нашел способ удалить саму очередь сообщений, но это не мой случай. Я действительно хочу удалить все ожидающие сообщения из очереди сообщений.

Я читал справочную страницу, в которой нашел mq_setattr API, который используется для управления параметром для очереди сообщений. Мне было просто интересно, если я установлю значение mq_curmsgs на 0 с помощью mq_setattr, удалит ли оно ожидающие сообщения из очереди?

Любая помощь в этом отношении будет оценена

1 Ответ

3 голосов
/ 08 января 2020

Одним из способов очистки очереди сообщений является mq_receive все сообщения, но не обработка их.


man mq_setattr:

Единственный атрибут, который можно изменить, - это установка флага O_NONBLOCK в mq_flags.

...