我有两个程序通过IPC队列来回发送和接收消息。但是,有时msgrcv函数会收到一条空白消息,而不是接收实际通过队列发送的内容。我已经注释了一个我认为应该可以工作的修复程序,但我想在此查看,看看这是否是使用msgrcv和msgsnd的正确方法。 msgrcv: int readqueue(int qid, long type, char *msg)
{
int retval;
您好我正在使用一些共享内存在不同的进程读取和写入数据。我正在使用消息队列来存储数据在读取和写入操作之间发生更改的消息。 /* struct that defines a message */
struct msgbuf{
long mtype; /* must be positive */
int childId; //ID of child sending messa
我遇到了问题。 我有一个过程,我们假设它是一个客户端,一个叫做服务器的进程。客户端和服务器之间通过相同的队列进行通信。假设一个客户向服务器发送一个消息(请求),所以服务器对它进行处理,并且应该向客户发回消息确认或失败。假设确认有一个long type = 1500101,并且失败有long type = 1500102。 是否有可能(在C中使用msgrcv)等待只有这两种类型的消息(客户端)? 如