我需要使用消息队列在两个进程之间进行通信。一个进程将请求发送到另一个进程,并且其他进程发送响应。使用消息队列在进程之间传递消息
例如,其中一个请求列出了进程打开的所有文件名。我做了界面结构
#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