Cela n'est pas possible dans une console, car la redirection de flux forme toujours un graphe acyclique.
Pour obtenir la redirection cyclique que vous recherchez, vous pouvez coder un petit programme qui appelle vos deux exécutables, et gère le câblage des flux d'entrée et de sortie de chaque processus. Chaque paire de flux connectés (un flux d'entrée et un flux de sortie de chaque programme) aura besoin d'un thread pour extraire les données du flux de sortie et les insérer dans le flux d'entrée. Donc, vous aurez besoin de 2 threads, puisqu'il y a 2 ensembles de paires de flux d'entrée/sortie.
Voici les étapes consistant à relier les divers courants:
- créer deux tampons, B1 et B2.
- lancez le programme 1, (P1) et récupérez les poignées de flux d'entrée et de sortie.
- connecter l'entrée P1 à l'entrée du tampon B1 et la sortie P1 à la sortie du tampon B2.
- lancer le programme 2, (P2) et extraire les lignes de flux d'entrée et de sortie
- connecter l'entrée P2 à l'entrée du tampon B2 et la sortie P2 à la sortie du tampon B1. (Notez que ce B1/B2 est inversé de connexion P1 ci-dessus.)
Les tampons sont des threads actifs, en lisant du côté de l'entrée et en écrivant du côté de la sortie.
Le tampon devra détecter la fin du flux du côté de l'entrée et fermer le côté de sortie en conséquence. Lorsque les deux côtés sont fermés, le thread qui exécute le tampon peut quitter.
Merci! Ça marche. J'ai implémenté cette idée de threading (en python, comme suggéré par kerkeslager). Merci beaucoup! – user302099