Mehrere stdout zu einem stdin

1

Ich bin unter Windows, obwohl ich unter Linux sein könnte, also sind Lösungen für beide willkommen.

Ich habe ein Programm, das im Wesentlichen ein Spiel mit 4 Spielern ist, die von jedem dieser Spieler eine Anweisung erhalten. Grundsätzlich besteht die Idee darin, 4 Gruppen zu haben, um eine KI für dieses Spiel zu erstellen. Ich muss das Stdout aller 4 dieser KI-Programme zum Stdin meines Wettbewerbsprogramms routen. Wie würde ich das machen?

bi0phaz3
quelle
mkfifo. CreatePipe ?
Alex
Funktioniert eine Pipe für mehrere Standardausgänge?
bi0phaz3
Siehe Beispiel in meiner Antwort
Alex

Antworten:

0

Named Pipes akzeptiert Ausgaben von jedermann (wenn Berechtigungen es erlauben)

#!/bin/bash

mkfifo -m 666 /tmp/myfifo.pipe

( echo 'Proc1' 1> /tmp/myfifo.pipe ) &
PID1=$!
( echo 'Proc2' 1> /tmp/myfifo.pipe ) &
PID2=$!
( echo 'Proc3' 1> /tmp/myfifo.pipe ) &
PID3=$!

 cat </tmp/myfifo.pipe > result.txt

wait $PID1 $PID2 $PID3

rm -f /tmp/myfifo.pipe
Alex
quelle