系统V消息传递队列



我正在写一个应用程序,有一个消息队列和两个进程收听。我怎样才能防止别人先读它呢?

场景如下:有一个服务器应用程序读取队列并将消息发送到其他队列。(一个服务器和多个具有不同消息队列的客户端)

但是客户端和服务器之间的消息是来自同一个队列的;我不能保证服务器在客户端线程(读取传入)之前接收消息。

你能帮我实现吗?

我想我找到解决办法了。我的错误是没有正确阅读手册。

ssize_t msgrcv(int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, int msgflg);

参数4用于此。如果我为客户端设置消息标志,它将足以处理!

最新更新