[C++] Obtenir retour de system()

Fermé
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 - 21 juil. 2012 à 18:58
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 - 21 juil. 2012 à 19:55
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 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
21 juil. 2012 à 19:28
Salut. Utilises popen. tu pourra récupérer le résultat de ta commande.
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
21 juil. 2012 à 19:46
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 dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
21 juil. 2012 à 19:55
Merci beaucoup pour ton aide! Je me suis débrouillé ! mon erreur corrigée :
    while(fgets(psBuffer, 128, pPipe))
      {
         more = more + "<br>" + psBuffer;
      }
0