У меня есть требование об обмене данными между двумя процессами с использованием очередей сообщений. Один процесс отправляет запрос другому процессу, а другой процесс отправляет ответ.Передача сообщений между процессами с использованием очередей сообщений
Например, один из запросов представляет список всех имен файлов, открытых процессом. Я сделал структуру интерфейса, как
#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 и не хочу иметь статический массив внутри структуры. Есть ли другой способ использования очередей сообщений, которые мы можем достичь.
Просьба указать ваши данные. Thanks
Помните: Если вы отступы ваш код, он будет отформатирован должным образом! – 2010-11-25 09:07:06