bonjour, j'ai deux processus reliés par un pipe, je souhaite envoyer une structure
J'ai declaré ma structure comme cela
voila le code que je fait pour initialiser la structure et l'envoyerCode:
1
2
3
4
5
6 struct verif_particulier{ char * serveur; //serveur1 ou serveur2 int req_banque; //"CHECK CLIENT", "UPDATE COMMERÇANT" unsigned long long id_client; float mount; };
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 //la string a envoyer serveur="serveur_1"; // créer le buffer pour copier la chaîne et la mettre en tableau de char size_t size = serveur.size() + 1; char * buffer3 = new char[ size ]; // copier la chaîne strncpy( buffer3, serveur.c_str(), size ); //creation de la structure a envoyer a banque t_verif_client.serveur=buffer3; //serveur_1 ou serveur_2 t_verif_client.req_banque=0; //"CHECK CLIENT 0", "UPDATE COMMERÇANT 1" t_verif_client.id_client=t.id2; //id du client t_verif_client.mount=t.mount;//Montant // libérer la mémoire delete [] buffer3; //test affichage cout << "SP t_verif_client.serveur " << t_verif_client.serveur<<" buffer "<<buffer3<<" serveur "<<serveur<<endl; /* envoie de donnees de SP vers banque */ write(tube_ecriture[i][1], &t_verif_client,sizeof(t_verif_client));
et dans mon autre processus (banque) j'essaye d'afficher le resultat comme cela
Code:
1
2
3 read(tube_ecriture, &t_verif_client,sizeof(t_verif_client)); cout<<"B : t_verif_client.serveur : "<<t_verif_client.serveur<<" t_verif_client.req_banque : "<< t_verif_client.req_banque<<" t_verif_client.id_client : "<< t_verif_client.id_client<<" t_verif_client.mount "<< t_verif_client.mount<<endl;
Donc le probleme est que t_verif_client.serveur reste desesperement vide lors de l'affichage dans banque, j'avoue ne pas comprendre,par contre les int s'affiche sans probleme
merci de votre aide