IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

PVM : pvm_pkstr(...)... comportement bizarre...


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Par défaut PVM : pvm_pkstr(...)... comportement bizarre...
    Bonjour,

    Je suis en train de faire un projet en C avec la librairie PVM.

    Mon processus est bien créé avec pvm_spawn (...).

    Le problème est :
    Quand j'envoie un "int" (packagé avec pvm_pkint) vers ce processus, ce dernier le dépacke bien et renvoie bien mon message de réponse (un int aussi)
    Par contre quand je tente d'envoyer une chaine de caractère (packagé avec pvm_pkstr(char *str)), mon processus parent bloque sur le pvm_recv... Ce qui semble vouloir dire qu'il y a un problème au moment du dépackage de la chaine (peut-être) ou alors de réception du côté du processus "fils".

    voici le code de la fonction d'envoie (partie principale)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ...
    pvm_spawn ("/home/tlenoir/simulator/station", 0, PvmTaskDefault, 0, 1, &tab_station[i - 1].id_process);
    pvm_initsend(PvmDataDefault);
    if (pvm_pkstr (tab_station[i - 1].name) < 0) printf ("ERROR IN PACK\n");
    if (pvm_send (tab_station[i - 1].id_process, 1) < 0) printf ("ERROR IN SEND\n");
     
    printf ("wait for answer\n");
    pvm_recv (-1, 1);
    pvm_upkint (&b, 1, 1);
     
    printf ("STATION: %d\n", b);
     
    pvm_exit ();
    ... et celui de la fonction de reception (chez le processus fils)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    pvm_recv (-1, 1);
    pvm_upkstr (name);
     
    idparent = pvm_parent ();
     
    pvm_initsend(PvmDataDefault);
    pvm_pkint (&id, 1, 1);
    pvm_send (idparent, 1);
    pvm_exit ();
    La chaine de caractère est bonne (j'ai vérifié... même avec une chaine en constante), avant d'avoir une proposition dans ce genre

    Quelqu'un aurait-il une solution ? C'est surement une erreur de ma part ... enfin je suppose... [/code]

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Par défaut
    J'ai trouvé mon problème...

    Pour ceux que cela intéresse :

    pvm_upkstr(char *str) n'alloue pas de mémoire à votre chaine... de ce fait, il faut que str soit alloué en mémoire à l'avance (en déclaration ou avec un malloc)...

    Perso je trouve cela débile, parce qu'à priori on ne sait pas forcément combien va faire la chaine qu'on va recevoir... bref, c'est comme cela, faut faire avec

    ... comme quoi, s'aérer un peu quand on a un problème, ya que cela de bon

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comportement bizarre de mes FPS
    Par Ekinoks dans le forum OpenGL
    Réponses: 7
    Dernier message: 22/08/2005, 15h14
  2. xsl:test .... avec comportement bizarre
    Par Blue LC dans le forum XMLRAD
    Réponses: 2
    Dernier message: 10/06/2005, 13h56
  3. [ACESS][MEMO][ISNULL]Comportement bizarre
    Par seb.49 dans le forum ASP
    Réponses: 2
    Dernier message: 09/06/2004, 10h44
  4. [HttpClient] comportement bizarre, saute des catch()...
    Par iubito dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/02/2004, 15h25
  5. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo