Rediriger la sortie d’un programme sous Linux

jeudi 24 décembre 2020
par  Christian

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 "< cin>>mess ;
cerr<<"Sortie du message -> "< cout<

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



Documents joints

Rediriger la sortie d'un programme sous (...)
Rediriger la sortie d'un programme sous (...)
programme C++ vers script Python