gpt4 book ai didi

c++ - 使用消息队列在进程之间传递消息

转载 作者:行者123 更新时间:2023-11-30 02:10:49 32 4
gpt4 key购买 nike

我需要使用消息队列在两个进程之间进行通信。一个进程向另一个进程发送请求,另一个进程发送响应。

例如,请求之一是列出进程打开的所有文件名。我将界面结构设为

 #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);

我认为上述设计的问题在于,由于文件名的长度在变化,char* 指向数据的指针不同,但结构的大小始终不变,因此接收方未接收到所有数据,并且接收方在访问 char 时崩溃* 指针。

我想在一个 mq_send 中发送完整的数据,并且不想在结构中包含静态数组。有没有其他方法可以使用消息队列来实现这一点。

请提供您的意见。谢谢

最佳答案

Receiver 正在崩溃,因为它无法访问您的指针,该指针只能从发送程序使用。您需要将实际数据发送到消息队列而不是指针。

关于c++ - 使用消息队列在进程之间传递消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4275275/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com