我有兩個程序通過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)等待只有這兩種類型的消息(客戶端)? 如