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 la sortie console


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut Récupérer la sortie console
    Bonjour à tous,

    Je travaille sur un projet ayant pour but de sauvegarder et restaurer des bases de données MySQL.
    Pour ce faire, j'utilisais jusqu'à maintenant la fonction system() pour exécuter les commandes mysqldump et mysql (pour la restauration).

    Mais avec system(), je ne peux pas récupérer la sortie console qui m'indiquera si une erreur a eu lieu pendant la sauvegarde/restauration.

    Donc, j'ai essayé avec _popen (version Windows de popen), mais le soucis, c'est qu'apparemment, les commandes mysql et mysqldump ne renvoient rien (mais elles écrivent tout de même des messages sur la console).

    Si nécessaire je peux vous mettre une partie de mon code, mais le problème ne viens pas de là (j'utilise _popen exactement de la même façon avec une commande netstat, par exemple, et je récupère bien la sortie).

    Donc ma question est, comment récupérer le texte qui s'affiche bien sur ma console après avoir lancé une de ces commandes, sans utiliser _popen, car ceci ne fonctionne pas?

    Merci d'avance,
    Clément.

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 163
    Points
    17 163
    Par défaut
    sous linux, tu ferais un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    system("mysqldump > save 2>errfile");
    system("mysql save >outfile 2>errfile");
    voire un script bash.

    Tu dois pouvoir faire les mêmes redirections avec windows.

    je te conseille cependant de regarder pour utiliser directement l'api C(++) de mysql, (libmysql?)

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut
    Salut, et merci pour ta réponse!

    Magnifique c'est bien le 2> qui permet de rediriger les erreurs dans un fichier texte. C'est fou, même en épluchant la documentation, je n'ai rien trouvé qui en parlait.

    Quant à l'api C++ de mysql, je m'en sert déjà, mais je n'ai rien trouvé dans la documentation concernant mysqldump et la restauration des données.

    J'ai posté sur leur forum, mais il n'a pas l'air très vivant donc je verrais bien si quelqu'un peut m'aiguiller.

    PS: Autant pour moi, si ce n'était pas dans la doc mysql c'est parce que la redirection 2>, c'est du shell.

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

Discussions similaires

  1. Récupérer les sorties console dans une variable
    Par ol9245 dans le forum MATLAB
    Réponses: 4
    Dernier message: 10/06/2012, 21h36
  2. [console]Récupérer la sortie d'un programme console (débutant)
    Par Moravski dans le forum GTK+ avec C & C++
    Réponses: 9
    Dernier message: 14/02/2010, 10h37
  3. Réponses: 15
    Dernier message: 15/06/2009, 17h35
  4. Récupérer sortie console Linux dans la console d'Eclipse
    Par roro73 dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 01/07/2008, 20h45

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