我需要使用消息隊列在兩個進程之間進行通信。一個進程將請求發送到另一個進程,並且其他進程發送響應。使用消息隊列在進程之間傳遞消息
例如,其中一個請求列出了進程打開的所有文件名。我做了界面結構
#define LIST_NAMES 1
#define LIST_FILE_NAMES_RESP 2
struct sFileStruct {
unsigned int uiCommand;
unsigned long ulNoOfBytes; // Number of bytes to be parsed in cha* pointer below
char* pRecvData; // file names packed here in response.
};
sFileStruct inData;
// I am filling the data.
int inSize = sizeof(inData);
mq_send(m_qSendDesc, (char*)&inData, inSize, inPriority);
我覺得上面的設計問題是,legth正在改變字符的文件名*指針指向的數據是不同的,但結構的大小始終是恆定的,所以接收器沒有receving所有數據和接收器在訪問char *指針時崩潰。
我想在一個mq_send中發送完整的數據,並且不希望在結構中有靜態數組。有沒有其他方式使用消息隊列,我們可以實現這一點。
請提供您的意見。 謝謝
記住:如果您縮進代碼,將格式正確的! – 2010-11-25 09:07:06