Bnojour, je suis nouveau. J'ai une question. Je veux faire une application en C++ qui émet des commandes system et intéragit avec le retour, une sorte de terminal plus pret de hotwire que de xterm. Idéalement, j'aimerais que mon programme émet et recois lui même les output. À date, cela ma causé beaucoup de mots de tête. J'ai étudier 2 première possibilitées:

Utiliser fopen pour recevoir le résultat:
+facile
+fonctionne sans trop se préocuper du système
-ne commence à utiliser les output que quand la commande est terminé
-demmande un buffer de plusieurs millions de char pour ne pas risqué de -faire un overflow

Utiliser la redirection ">>" directement sur la ligne de commande dans un fichier temporaire:
+il peut analyser en temps presquer réel les outputs dans une boucle infini
-C'est une boucle infini, elle n'est pas capable de s'arrêter saud si j'ajoute && echo killme ou quelque chose du genre à la fin de la commande (très peu professionel)
-C'est vraiment très insécure, trop insécure.


Maintenant, après avoir lut quelque centaine de pages sur le fonctionement de bas niveau des systèmes POSIX, je commence à voir aparaitre la bonne solution:
-forker mon prosessus
-créer un pipe entre les 2 prosessus
-executer la commande et redirectionné la sortie dans le pipe
-attendre (ou provoquer) sa mort depuis le prosessus père en affichant/parsant les résultats à mesure.

Le problème, c'est que à par forker le prosessus, je ne sais pas comment faire cela, les exemples sont très rare. Comment est-ce que je redirige la sortie de la commande dans le pipe et comment je le recois dans le prosessus père en directe?

Merci de m'aider!