如何从c中的POSIX消息队列中删除或清除所有消息?

时间:2020-01-08 09:22:27

标签: c linux posix ipc message-queue

我想从POSIX消息队列中删除所有消息。我在互联网上进行搜索,但没有找到任何方法来代替它,而是找到了删除消息队列本身的方法,但这不是我的情况,我实际上是想从消息队列中清除所有待处理的消息。

我正在阅读手册页,其中找到了mq_setattr API,该API用于控制消息队列的参数。我只是想知道是否通过使用mq_curmsgsmq_setattr的值设置为0,会清除队列中的未决消息吗?

在这方面的任何帮助将不胜感激

1 个答案:

答案 0 :(得分:3)

清除消息队列的一种方法是mq_receive,但不处理所有消息。


man mq_setattr

唯一可以修改的属性是mq_flags中O_NONBLOCK标志的设置。