我正在编写一个应用程序,其中有一个消息队列和两个进程正在侦听它。如何防止其他人在其他人之前阅读?
情景是: 有一个服务器应用程序,它读取队列并将消息发送到其他队列。 (onc服务器和具有不同消息队列的多个客户端)
但客户端和服务器之间的消息来自同一队列;我不能保证服务器在客户端线程(读取incomings)之前接收消息。
你能帮我实现吗?
答案 0 :(得分:1)
我想我找到了解决方案。我的错误是不能正确阅读手册。
ssize_t msgrcv(int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, int msgflg);
参数4用于此目的。如果我为客户端设置了消息标志,它就足以处理了!