标签: c linux posix ipc message-queue
我想从POSIX消息队列中删除所有消息。我在互联网上进行搜索,但没有找到任何方法来代替它,而是找到了删除消息队列本身的方法,但这不是我的情况,我实际上是想从消息队列中清除所有待处理的消息。
我正在阅读手册页,其中找到了mq_setattr API,该API用于控制消息队列的参数。我只是想知道是否通过使用mq_curmsgs将mq_setattr的值设置为0,会清除队列中的未决消息吗?
mq_setattr
mq_curmsgs
在这方面的任何帮助将不胜感激
答案 0 :(得分:3)
清除消息队列的一种方法是mq_receive,但不处理所有消息。
mq_receive
man mq_setattr:
man mq_setattr
唯一可以修改的属性是mq_flags中O_NONBLOCK标志的设置。