谁能告诉我如何检查消息队列中是否有消息。
消息队列是在基于Linux的操作系统中用C语言实现的。
我只是想检查在特定时间消息队列中是否有消息。
只需使用以下命令即可检查消息数量(如果有)
msgctl()
函数,并在返回时检查 msqid_ds 结构,该结构中的 msg_qnum 是队列中的消息数量。这是一个带有示例的链接:消息控制示例 http://uw714doc.sco.com/en/SDK_sysprog/IC_CntllMsgQueues.html#ipc_i6,它的作用比您想要的更多,但是在 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;
}
这个例子应该做你想做的事,并且只做你想做的事。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)