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?


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.