繁体   English   中英

如果为空,请检查Unix Message Queue

[英]Check Unix Message Queue if empty or not

有人可以告诉我如何检查消息队列中是否有任何消息。 消息队列在基于Linux的操作系统的C中实现。 我只想检查特定时间消息队列中是否有任何消息。

只需检查消息的数量(如果有的话)即可

msgctl() 

函数,并在返回时检查msqid_ds结构,此结构中的msg_qnum是队列中的消息量。 这是一个带有示例的链接: msgctl示例 ,它可以执行更多操作,但在msgctl()调用之后,您只需检查上面提到的结构中的该字段。

#include <sys/msg.h>

main() {
  int msqid = 2;
  int rc;
  struct msqid_ds buf;
  int num_messages;

  rc = msgctl(msqid, IPC_STAT, &buf);
  num_messages = buf.msg_qnum;
}

这个例子应该做你想要的,只做你想做的事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM