J'ai un besoin d'avoir une communication entre deux processus utilisant des files d'attente de messages. Un processus envoie la demande à un autre processus et un autre processus envoie une réponse.Passer des messages entre processus à l'aide de files d'attente de messages
Par exemple, l'une des demandes est la liste de tous les noms de fichiers ouverts par le processus. J'ai fait la structure d'interface
#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);
Je pense que problème avec la conception ci-dessus est que les noms de fichiers legth est en train de changer char * pointeur vers les données sont différentes, mais la taille de la structure est toujours constante, de sorte que le récepteur n'est pas receving tous les données et le récepteur se plantent lors de l'accès au pointeur char *.
Je souhaite envoyer des données complètes dans un seul mq_send et ne souhaite pas avoir de matrice statique dans la structure. Existe-t-il un autre moyen d'utiliser les files d'attente de messages?
Veuillez fournir vos entrées. Merci
Rappelez-vous: Si vous indentez votre code, il sera formaté correctement! –