메시지 대기열을 사용하는 두 프로세스간에 통신 할 수있는 자격이 있습니다. 한 프로세스가 요청을 다른 프로세스로 보내고 다른 프로세스가 응답을 보냅니다.메시지 대기열을 사용하는 프로세스간에 메시지 전달
예를 들어 요청 중 하나는 프로세스에서 열려있는 모든 파일 이름을 나열합니다. 나는 위의 디자인 문제가 문자를 변화 legth 파일 이름으로 * 데이터에 대한 포인터를 가리키는은 다르지만, 구조의 크기가 항상 일정하다는 생각
#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 * 포인터에 액세스하는 동안 데이터와 수신자가 충돌합니다.
하나의 mq_send에서 전체 데이터를 보내려고하며 구조 내부에 정적 배열을 갖고 싶지 않습니다. 우리가 이것을 달성 할 수있는 메시지 대기열을 사용하는 다른 방법이 있습니까?
의견을 제공해주세요. 감사합니다.
기억하십시오 : 당신은 당신의 코드를 들여 쓰기 경우 제대로 포맷됩니다! –