Ama*_*hal 5 c unix message-queue
有人可以告诉我如何检查消息队列中是否有任何消息.消息队列在基于Linux的操作系统的C中实现.我只想检查特定时间消息队列中是否有任何消息.
只需检查消息的数量(如果有的话)即可
msgctl()
Run Code Online (Sandbox Code Playgroud)
函数,并在返回时检查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;
}
Run Code Online (Sandbox Code Playgroud)
这个例子应该做你想要的,只做你想做的事.