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 :

pipe sous linux


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut pipe sous linux
    Salut à tous.

    Dans le cadre de la création d'un gestionnaire de conenctions wifi, je dois récupérer dans mon programme C++ la sortie d'une commande (iwlist en l'occurence)
    Comment faire ?

  2. #2
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    up. personne ne sait m'aider ?

  3. #3
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut
    Donne plus de details, je connais pas iwlist. Comment appelles tu cette commande, donne le bout de code... bref plus de precisions, je pense que les autres sont comme moi sinon y aurait deja moultes reponses

    EDIT: merde, aujourd hui je passe plus de temps a repondre qu'a bosser... c un drogue ce forum

  4. #4
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    peu importe iwlist.

    Ce que je veux, c'est récupérer la sortie d'une commande, quelle qu'elle soit ,ca peut etre iwlist comme cat, ifconfig...

  5. #5
    mat.M
    Invité(e)
    Par défaut
    Avec exec() ou system() c'est pas possible ?

  6. #6
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    non, ces deux fonctions ne retournent que un entier, soit si la commande s'est bien exécutée ou non. ce n'est pas ce qu'il me faut. Il me faut le texte qu'a affiché cette commande

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Citation Envoyé par harsh
    EDIT: merde, aujourd hui je passe plus de temps a repondre qu'a bosser... c un drogue ce forum
    Pourquoi crois-tu que je me limite à répondre le soir

    Sinon, sous systêmes posix tu as popen qui permet d'ouvrir un pipe (sous win32 tu dois l'avoir avec un tiret-bas devant à tous les coups) qui te permettra de récupérer le résultat de ta commande. De là tu récupères un numéro de handle. Soit tu manipules comme les fichiers C classiques. Soit tu enveloppes avec une des classes de boost.iostream pour lire avec les flux C++ standard.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    aaaah... merci ! depuis le temsp que je cherche ca, et c'est aussi simple qu'en PHP...

    Vraiment, merci !

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    si tu utilises Qt
    alors utilise QProcess pour demarrer ton programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    QString program = "./path/to/Qt/examples/widgets/analogclock";
    QStringList arguments;
    arguments << "-style" << "motif";
     
    QProcess *myProcess = new QProcess(parent);
    myProcess->start(program, arguments);
    QProcess herite de QIODevice
    tu peux donc faire des read() get() ...

    ainsi que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QByteArray readAllStandardOutput ()
    et aussi utiliser le signal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    signal void readyReadStandardOutput ()
    pour savoir si il y a des datas dans le flux

    et/ ou utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void finished ( int exitCode, QProcess::ExitStatus exitStatus )
    ensuite faire ce que tu veux....

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

Discussions similaires

  1. Soucis de pipe en C++ sous linux
    Par portix1 dans le forum SL & STL
    Réponses: 1
    Dernier message: 05/01/2008, 15h53
  2. [Série] Accès au port série sous linux
    Par ghost dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 10/10/2007, 10h43
  3. Comment désinstaller MySQL sous linux
    Par nahmsath dans le forum Installation
    Réponses: 5
    Dernier message: 18/09/2007, 10h46
  4. Réponses: 5
    Dernier message: 05/01/2007, 21h26
  5. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57

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