2009-10-04 9 views
4

J'écris un programme en C++ (pour la communication XAMPP) et je veux exécuter la commande que j'ai dans les chaînes (je sais que c'est simplement système ("commande")) mais je veux obtenir la sortie de bash en C++ en chaîne. J'ai fondé plusieurs threads à ce sujet, mais aucun qui a résolu Bash -> C++.Bash entrée/sortie en C++

Répondre

4

Vous pouvez appeler la fonction FILE *popen(const char *command, const char *mode). Ensuite, vous pouvez lire le fichier qu'il renvoie pour obtenir la sortie de votre appel. C'est comme utiliser un tuyau pour rediriger la sortie de la commande que vous avez utilisée vers un fichier sur le disque dur, puis lire le fichier, mais vous ne pouvez pas créer de fichier sur le disque dur.

The documentation of the popen() is here.

2

Vous devez appeler la fonction popen et lire la sortie du FICHIER qu'elle renvoie.

1

Vous pouvez essayer la redirection de sortie standard pour rediriger la sortie standard vers un flux de fichier , puis l'utiliser pour lire une chaîne.

Dup()

+0

En effet, si le programme C++ lit stdin alors vous pouvez émettre un cammand comme: bash_command | cppProgram | chaîne – Deverill