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 :

Récupérer le résultat d'un system("...")


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 27
    Points : 24
    Points
    24
    Par défaut Récupérer le résultat d'un system("...")
    Bonjour,
    Je pense que mon titre est explicite, je souhaiterais récupérer la chaîne qui résulte, par exemple, d'un system("ls") (sous linux) ou d'un system("ping 127.0.0.1") (sous windows) et stocker cette chaine dans un variable.
    Merci

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut Re: Récupérer le résultat d'un system("...")
    Citation Envoyé par the_penguin
    Bonjour,
    Je pense que mon titre est explicite, je souhaiterais récupérer la chaîne qui résulte, par exemple, d'un system("ls") (sous linux) ou d'un system("ping 127.0.0.1") (sous windows) et stocker cette chaine dans un variable.
    Merci
    Tu ne peux pas, il existe une technique bien crado

    system("ls > monfic.txt");

    et apres tu ouvres le fichier en lecture et tu cherches ce qui t'interesse.

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    En effet. La fonction system renvoi un int.

    Par contre je vois pas ce qu'il y a de crado dans une redirection Car a moins de recoder "ls" "ping" etc je vois pas trop comment faire..

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par hegros
    En effet. La fonction system renvoi un int.

    Par contre je vois pas ce qu'il y a de crado dans une redirection Car a moins de recoder "ls" "ping" etc je vois pas trop comment faire..
    C'est pas la rediection qui est crado c'est la fait de creer le fichier, le lire pour chercher ce qu'on veut et de supprimer le fichier.

    Mais c'est vrai que l'on ne peut faire autrement, donc voila.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 27
    Points : 24
    Points
    24
    Par défaut Re: Récupérer le résultat d'un system("...")
    Citation Envoyé par Skyrunner
    system("ls > monfic.txt");
    j'adore ta solution
    Mais je n'ai pas réussi à la reproduire sous windows... y a-t-il moyen ?

    EDIT : Ah si en fait ca marche MERCI

  6. #6
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    Tu peux utiliser plus proprement la fonction _popen sous windows ( http://msdn.microsoft.com/library/de...c_._wpopen.asp).

  7. #7
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Points : 68
    Points
    68
    Par défaut
    au lieu de passer par un fichier sous linux, redirige la sortie standard vers un tube et le tour est joué

  8. #8
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    Il existe une solution portable et standard (Posix.2) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <stdio.h>
     
           FILE *popen (const char *commande, const char *type);
     
           int pclose (FILE *stream);

Discussions similaires

  1. récupérer le résultat avec "system()"
    Par kboo dans le forum MFC
    Réponses: 12
    Dernier message: 09/06/2006, 11h50
  2. Réponses: 1
    Dernier message: 28/06/2005, 10h15
  3. récupérer le résultat d'une requete
    Par sheira dans le forum ASP
    Réponses: 3
    Dernier message: 03/12/2004, 12h04
  4. [C#] Récupérer le résultat d'une procédure stockée
    Par fabrice1596 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/10/2004, 14h45
  5. Réponses: 5
    Dernier message: 05/10/2004, 14h05

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