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

Linux Discussion :

Exécuter une commande linux.


Sujet :

Linux

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 74
    Points
    74
    Par défaut Exécuter une commande linux.
    Bonjour,

    J'aimerais faire un programme c++ qui affiche le résultat de la commande "ls" (par exemple), comment doit-je faire ?

    Merci d'avance...

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    int system(const char * cmd) déclarée dans stdlib.h
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 74
    Points
    74
    Par défaut
    Merci de ta réponse mais j'ai oublier de précisier que je devait mettre le résultat de la commande "ls" dans un string ou un char...

    Est-ce possible de faire ça avec la fonction system() ?

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    tu redirige la sortie de ta commande dans un fichier et tu lis ce fichier
    en gros cela donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    int excmd(std::string& cmd, std::string& out)
    {
      std::string tmp = cmd + " > tmp.cmd";
      int ret = system(tmp.c_str());
      if ((ret == 127) || (ret == -1))
        return ret;
      /*la tu lis le fichier tmp.cmd et tu stockes le contenu dans out*/
      return ret;
    }

  5. #5
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Salut,
    J'aurais plutot dit d'utiliser popen() et pclose() qui te permettent de lire le résultat directement dans la sortie de la console et de récupérer ce résultat.
    Tu trouveras aisément de la doc sur ces fonctions, notemment "man popen" et "man pclose"
    Alp

Discussions similaires

  1. Exécuter une commande Linux sur un serveur dans un réseau
    Par majorsall84 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 23/07/2010, 19h14
  2. Exécuter une commande linux avec php
    Par Tinkite82 dans le forum Langage
    Réponses: 4
    Dernier message: 27/10/2009, 13h56
  3. Réponses: 12
    Dernier message: 28/04/2009, 09h20
  4. Exécuter une commande linux dans X threads en parallèle
    Par sanchou dans le forum Général Java
    Réponses: 8
    Dernier message: 23/04/2008, 14h02
  5. Réponses: 1
    Dernier message: 21/08/2007, 18h02

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