Rediriger la sortie d’un programme sous Linux
par
La démo utilise un programme écrit en C++ et un script python.
La sortie du programme C++ est redirigée vers l’entrée du script python
Script python : tst.py
Ce petit script attend un message sur l’entrée standard (stdin) et l’affiche sur l’écran
Habituellement l’entrée standard est le clavier :
mess=input()
print("Le script python a recu -> ",mess)
Programme C++ : mess.cpp
Ce petit programme C++ demande à l’utilistaur un message texte (donc depuis le clavier) et l’envoie sur la sortir standard , donc l’écran.
#include
using namespace std ;
int main(void)
string mess ;
cerr<<"Entrer un message "<
cerr<<"Sortie du message -> "<
Compilation : g++ -Wall mess .cpp (la sortie n’étant pas précisée, g++ produira l’exécutable a.out)
La redirection avec un tube (pipe)
Les tubes (en anglais « pipes", littéralement tuyaux) constituent un mécanisme de communication propre à tous les systèmes UNIX. Un tube, symbolisé par une barre verticale (caractère « | »), permet d’affecter la sortie standard d’une commande à l’entrée standard d’une autre, comme un tuyau permettant de faire communiquer l’entrée standard d’une commande avec la sortie standard d’une autre.
(D’après https://www.commentcamarche.net/contents/645-linux-le-shell )
La commande bash ci dessous établit un tube entre la sortie du programme C++ et l’entrée du script python.
Commande bash : $./a.out | python3 tst.py