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

Caml Discussion :

Résultat commandes shell


Sujet :

Caml

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Points : 102
    Points
    102
    Par défaut Résultat commandes shell
    Bonjour à tous.

    J'aimerais récupérer le résultat d'une commande shell. Actuellement, je fais une commande système que je redirige dans un fichier et je lis ce fichier.

    N'y a t-il pas plus élégant ? J'ai lu qu'on pouvait utiliser les commandes execv* mais je n'ai pas bien compris comment m'en servir.

    Ca remplace le programme qui tourne dans le processus courant par le programme passé en argument à execv. La solution serait donc de forker ? Cela permettrait-il de récupérer ce qui est normalement affiché dans la commande ?

    Que me conseillez-vous ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    De rester à la bonne redirection simple et pratique
    (avec une fonction par dessous pour cacher ça, et penser à nettoyer le fichier temporaire, et hop)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Points : 102
    Points
    102
    Par défaut
    Citation Envoyé par bluestorm Voir le message
    De rester à la bonne redirection simple et pratique
    (avec une fonction par dessous pour cacher ça, et penser à nettoyer le fichier temporaire, et hop)
    Oui c'est ce que je fais en effet. C'est dommage de passer par la création de fichier, c'est pas très propre quand même.

  4. #4
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 991
    Points
    2 991
    Par défaut
    T'as pas un pipe ? Même MS-DOS a un pipe (la barre verticale je crois).

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Points : 102
    Points
    102
    Par défaut
    Le programme fait tourner des commandes systèmes très fréquemment (en secondes d'intervalles).

    Avec le pipe, tu penses à un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ps -e | mon_programme ?
    Si tel est le cas, ça obligerait à faire appel à un programme externe à l'application.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Points : 102
    Points
    102
    Par défaut
    Ok, c'est bon, j'ai trouvé comment faire
    Troooooop bien !!!

    Et effectivement, ça utilise le système de pipe.

    open_process_in est en fait ma solution.

    Il prend en argument la commande système à exécuter et le résultat est retourné dans un 'buffer' (in_channel).

  7. #7
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Citation Envoyé par SpiceGuid Voir le message
    Même MS-DOS a un pipe (la barre verticale je crois).
    Lequel ?

  8. #8
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 991
    Points
    2 991
    Par défaut
    Depuis MS-DOS 2.0 (1983), donc assez longtemps pour que ça ne pose aucun problème de portabilité, même pour Caml-Light.

  9. #9
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    J'ai des doutes... un exemple de commande ?

  10. #10
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Points : 1 412
    Points
    1 412
    Par défaut
    Comme dans tous les shells... Testé avec cmd, sous Windows XP (je suppose que le fonctionnement était pareil sous MS-Dos) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >echo bar | grep o
     
    >echo foo | grep o
    foo

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Points : 102
    Points
    102
    Par défaut
    Perso moi j'ai pas de grep sous Windows XP.

  12. #12
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Points : 1 412
    Points
    1 412
    Par défaut
    C'est comme pour tous les logiciels... faut l'installer.


    PS : ma réponse était pour IOWT, ça ne concerne par ton problème de départ.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Points : 102
    Points
    102
    Par défaut
    Citation Envoyé par LLB Voir le message
    PS : ma réponse était pour IOWT, ça ne concerne par ton problème de départ.
    Oui oui mais j'avais bien compris

    Mais je participe c'est tout lol.

  14. #14
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 991
    Points
    2 991
    Par défaut
    Hà ben oui faut l'installer, c'est comme pour Coq, 16Mo tout rikiki-mouse -costo pour un célèbre clone de pingouin ventripotent contre 80 et des poussières de Mo pour nous autres Microsoftobotomisés.

    Par contre le helloca.ml est considérablement plus light de ce côté ci de la force qui triomphe contre la liberté. C'est dire l'ampleur du vaste complot qui se trame contre nous autres chameaux.

    De cette histoire on retiendra que Darth Vador a inventé le robinet à air portatif individuel et que George Lucas a dirigé la réalisation de l'épisode | un film qui a révolutionné le bruitage du crépitement de la barre-verticale avec la désormais célèbrissime réplique:

    echo laser.sw1 | greeeeeeeeeeeeeeeeeeeeeeeeeeep

  15. #15
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Vous ne seriez pas en train de parler d'un émulateur Unix sous Windows, par hasard ?

  16. #16
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Points : 1 412
    Points
    1 412
    Par défaut
    Citation Envoyé par LLB Voir le message
    Comme dans tous les shells... Testé avec cmd, sous Windows XP (je suppose que le fonctionnement était pareil sous MS-Dos)
    C'est le cmd de base, que l'on trouve partout... Rien à voir avec Unix.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    C:\>cmd
    Microsoft Windows XP [version 5.1.2600
    (C) Copyright 1985-2001 Microsoft Corp
     
    C:\>

  17. #17
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 991
    Points
    2 991
    Par défaut
    Non IOWT, on parle bien de l'infâme command.com.

    Par contre il ne s'agit pas forcément d'un véritable pipe, mais peut-être plutôt d'un simple raccourci pour utiliser un fichier temporaire anonyme.

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

Discussions similaires

  1. Récupérer le résultat de commandes shell
    Par Alwik dans le forum Général Python
    Réponses: 14
    Dernier message: 21/08/2016, 13h44
  2. Réponses: 11
    Dernier message: 30/08/2007, 10h08
  3. [VBA] commande Shell sans résultat
    Par p'tite Sandrine dans le forum Access
    Réponses: 6
    Dernier message: 13/02/2007, 12h00
  4. Récupérer le résultat d'une commande shell
    Par espadon1 dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2006, 11h01
  5. Récupération du résultat d'une commande shell
    Par klu dans le forum Langage
    Réponses: 8
    Dernier message: 17/02/2006, 00h34

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