[C++] Obtenir retour de system()

jobertomeu Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   -  
jobertomeu Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'aimerais savoir comment obtenir le retour d'une commande system().
J'effectue un ping via cette commande :
system(ping 127.0.0.1 -l xx -n xx -4 -6 ..);

Donc, si mon ping s'est bien déroulé, j'obtiens une valeur de type bool de 0, sinon, je reçois 1. Mais ces maigris infos ne me conviennent pas, j'aimerais connaitre le temps de réponse entre autre ..
si on rentre le nom d'une machine, j'aimerais que ça me retourne son IP etc ..
Voila, merci beaucoup ! :)


3 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut. Utilises popen. tu pourra récupérer le résultat de ta commande.
0
jobertomeu Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   86
 
Merci !
J'ai donc testé cette fonction, mais j'ai toujours des résultats nuls ( min = 0, max = 0, moyenne = 0 .. ) mon code :

char *c = exec_ok.toAscii().data(); ( ping 127.0.0.1, sa valeur par défaut )
    QString more;
    char psBuffer[125];
    FILE *pPipe;
    if ((pPipe = _popen(c, "rt")) == NULL) {
        exit(1);
    }
    while(fgets(psBuffer, 128, pPipe))
      {
         more = psBuffer;
      }


     
      if (feof( pPipe))
      {
          more += "yes";
      }
      else
      {
          more += "nope ..";
      }
0
jobertomeu Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   86
 
Merci beaucoup pour ton aide! Je me suis débrouillé ! mon erreur corrigée :
    while(fgets(psBuffer, 128, pPipe))
      {
         more = more + "<br>" + psBuffer;
      }
0