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 les informations de stdout


Sujet :

C

  1. #1
    Membre confirmé Avatar de acryline
    Profil pro
    Inscrit en
    Août 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 200
    Par défaut Récupérer les informations de stdout
    Bonjour

    je viens de faire une aplication avec la bibliothèque GTK+. Cette application lance une commande systeme avec wget.
    Pendant l'exécution de ma commande des informations s'affichent dans la console mais c'est invisible quand on fait marcher l'application en mode graphique.

    J'aimerais récupérer ces informations pour les afficher dans un GtkTextView.
    J'ai cherché mais je n'ai rien trouvé de bien clair.
    Faut-il utiliser stdout ? Comment ? Comment récupérer stdout ?

    J'utilise popen pour ouvrir ma commande système.

    Voilà j'espère avoir été assez claire et avoir donné les informations nécessaires pour que quelqu'un puisse me répondre.
    Merci

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    popen est en effet la solution, reste à savoir si tu utilises correctement cette fonction. Montre un peu de ton code.

  3. #3
    Membre confirmé Avatar de acryline
    Profil pro
    Inscrit en
    Août 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 200
    Par défaut
    J'ai effacé cette partie du code, je réutilise la foncton system().
    Je suis sous linux et je suis allée voir dans le fichier stdout du repertoire /dev, les info qui s'affiche lorsque que j'utilise wget n'y sont pas.
    Alors je ne pense pas que ce soit la solution....mais ce n'est que mon humble avis.
    Comment faire. Je mettrais bien les info que j'obtiens ici mais je n'arrive pas à les copier dans le presse papier... je vais réessayer.

    Edité :Je n'y arrive pas.Je suis un peu paumée, je ne trouve pas de solution

    Voici le code pour lancer la commande avec wget...à partir de là j'aimerais récupérer les infos de la console pour les mettre dans un gtktextView :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    void telechargerURL(GtkWidget *p_Bouton, gpointer data)
    {
       GADGET *p_gadget;
       p_gadget =(GADGET*)data;
       gboolean test=TRUE;
       const gchar *login={0},*password={0};
       char code [250]={0};
       int i=0,j=0;
     
       //présence du login
       login=gtk_entry_get_text (GTK_ENTRY(p_gadget->entree[0]));
       if(strlen(login)==0)
       {
           test=FALSE;
           message(p_gadget, "Vous n'avez pas entré de Login");
     
       }
               if(test==TRUE)
               {
               //présence du mot de passe
               password=gtk_entry_get_text (GTK_ENTRY(p_gadget->entree[1]));
                  if(strlen(password)==0)
                    {
                   test=FALSE;
                   message(p_gadget, "Vous n'avez pas entré de mot de passe");
                    }
                         if(test==TRUE)
                         {
                         //présence d'au moins un URL
                           if(strlen(p_gadget->url[0])==0)
                           {
                            test=FALSE;
                            message(p_gadget, "Il faut au moins sélectionner une URL");
                           }
                               if (test==TRUE)
                               {
                                 //construire le code systeme
                                for(j=0;j<p_gadget->ligne;j++)
                                {
                                 strcpy(code,"wget --http-user=");
                                 strcat(code,login);
                                 strcat(code," --http-password=");
                                 strcat(code,password);
                                 strcat(code," ");
                                 strcat(code,p_gadget->url[j]);
                                 printf("%s\n",code);
     
                                //lancer le code
                                    i=system(code);
                                }
                               }
                         }
               }
    }

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par acryline Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
                                 //construire le code systeme
                                for(j=0;j<p_gadget->ligne;j++)
                                {
                                 strcpy(code,"wget --http-user=");
                                 strcat(code,login);
                                 strcat(code," --http-password=");
                                 strcat(code,password);
                                 strcat(code," ");
                                 strcat(code,p_gadget->url[j]);
                                 printf("%s\n",code);
     
                                //lancer le code
                                    i=system(code);
                                }
                               }
                         }
               }
    }
    Ajoute " > monfichier.txt" à la fin de la commande et tout ce que la commande sort normalement sur stdout ira dans le fichier. Il te suffira ensuite de lire ce fichier et de l'analyser.

  5. #5
    Membre confirmé Avatar de acryline
    Profil pro
    Inscrit en
    Août 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 200
    Par défaut
    Merci pour la réponse.
    Je viens de tester ta solution, le fichier txt se crée mais il est vide.
    Que dois-je faire ?

    Edité : J'ai trouvé il faut utiliser une option de wget et mettre au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     strcpy(code,"wget --output-file=info.txt --http-user=");

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/03/2006, 14h15
  2. []récupérer les informations de idtag d'un mp3
    Par mierkool dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/01/2006, 11h36
  3. Récupérer les informations d'un autre site
    Par deelyth dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/01/2006, 09h44
  4. Réponses: 5
    Dernier message: 23/12/2005, 19h19
  5. [IdHTTP] Récupérer les informations provenant d'une serveur
    Par newbie57 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 24/11/2005, 12h33

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