compatibilité GMP / socket - C - Programmation
Marsh Posté le 16-07-2013 à 14:41:37
Bonjour !
Je soupçonne que le mpz_t soit un type "opaque", et ne soit rien d'autre qu'un pointeur sur une structure connue uniquement par les fonctions internes de la lib.
Dans ce cas-là, il est tout à fait normal que vous ayez une seg. fault, car le processeur qui reçoit le message tente d'accéder à de la mémoire qui appartient à un autre processus (si l'émetteur est sur la même machine) ou une adresse qui est alloué sur une autre machine et qui ne correspond donc à rien sur la machine du receveur.
Pour faire fonctionner le tout, il vous faut une sorte de sérialisation, qui est sans doute fournie par la bibliothèque.
Bonne continuation !
Marsh Posté le 16-07-2013 à 12:28:00
Bonjour,
j'utilise la bibliothéque GMP, j'ai defini une structure (je doit envoyer des valeurs de variable avec les socket):
je defini mes socket correctement, bref il n'y a pas de probléme au niveau de mes sockets ,
j'ai crée ces deux fonction :
les programmes qui discutent utilisent ces deux fonctions :
tous est correctement initialisé et compile mais il y a une segementation fault au niveau du "gmp_printf " de recv2. Je l'ai donc mis en commentaire pour voir et la segementation fault apparait cette fois si au " mpz_init_set(* var,variable.valeur) ;" . j'en ai donc déduit qu'il y a un probléme au niveau de recv et send ?
quelqu'un a t'il déja rancontré ce probléme ?
note: aucune erreur de send et de recv n'est a observer puisque le "printf(" recu: %c :: \n",variable.nom);" affiche le bon caractére. De plus j'ai le même programe qui tourne avec des int plutôt qu'avec GMP (je me suis entrainé avec les entier avans d'utiliser gmp.h. et il marche trés bien (mais les int ne sont pas assez gros pour se que je veux faire.