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 :

Parser le resultat d'une commande shell


Sujet :

C++

  1. #1
    Membre habitu�
    Inscrit en
    Juin 2002
    Messages
    11
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Par d�faut Parser le resultat d'une commande shell
    Bonjour,
    Je travaille sous mac en c++ et je cherche a parser les informations donn�es par la commande shell "system_profiler".
    Pour cela j'ai vu que la fonction popen pouvait me r�cup�rer la sortie de la commande mais l'analyse s'av�re fastidieuse par la suite.
    Existe t il un moyen d'analyser un flux de donner provenant d'une ex�cution d'une commande shell par ligne comme on peut avec les fichier et ifstream ?/

    Merci d'avance

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Si tu fais fdopen() sur le descripteur retourn� par popen(), tu obtiendras un FILE* et tu pourras donc utiliser les fonctions de C de lecture de flux (dont fgets()).

    J'ignore s'il y a un �quivalent pour les flux C++...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre �m�rite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par d�faut
    Citation Envoy� par M�dinoc Voir le message
    J'ignore s'il y a un �quivalent pour les flux C++...
    Boost::iostreams contient quelque chose pour �a: http://www.boost.org/doc/libs/1_35_0...criptor_source . Evidemment faut connaitre le fonctionnement de cette biblio, mais �a vaut le coup d'apprendre.

    Si je peux te donner un conseil, les programmes en ligne de commande ont un gros d�faut : par d�faut ils formatent leur sortie pour qu'elle soit lisible par un humain dans une console, pas par un programme dans un flux.
    N�anmoins, certaines commandes genre ls poss�dent des options permettant de limiter les donn�es affich�es, par exemple pour lister les fichiers un � un avec chaque fois un retour � la ligne, ce qui est beaucoup plus facile � parser. Un petit coup de man et un exp�rimentation des diverses options alt�rant la sortie pourraient s'av�rer b�n�fiques.

  4. #4
    Membre habitu�
    Inscrit en
    Juin 2002
    Messages
    11
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Par d�faut
    Merci a vous deux, je suis arrive a parser ce que je voulais. Je vais voir un coup du cote de boost aussi, ca peut toujours �tre utile.

Discussions similaires

  1. R�cup�rer le resultat d'une commande Shell
    Par flieppo dans le forum VB 6 et ant�rieur
    R�ponses: 9
    Dernier message: 07/07/2009, 12h39
  2. R�ponses: 2
    Dernier message: 27/02/2006, 15h59
  3. Tester le résultat d'une commande avec ksh
    Par jotake dans le forum Linux
    R�ponses: 3
    Dernier message: 28/09/2005, 11h59
  4. R�ponses: 3
    Dernier message: 20/09/2005, 18h27
  5. [langage] Parser le deroulement d'une commande
    Par roddy dans le forum Langage
    R�ponses: 7
    Dernier message: 16/08/2004, 15h18

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