Ich schreibe ein Programm, das die Ausgabe eines anderen Programms verarbeitet.Prozess Stdin mit C
Angenommen, mein Testprogramm heißt test
und ich möchte die Stdout-Ausgabe des Programms namens file
verarbeiten.
In test
, ich lese stdin
als Datei wie folgt:
FILE *fp;
fp = fopen("/dev/stdin", "r");
Dies funktioniert, wenn ich die folgenden in der Kommandozeile ausführen: ./file | ./test
.
Aber ich nehme an, ich möchte I/O-Umleitung verwenden, also: ./file > ./test
. Wie kann ich das in C handhaben?
Dies funktioniert, wenn Sie die richtige Syntax verwenden, um die Ausgabe eines Programms (Datei) zu einem anderen Programm (Test) zu leiten, die es als Eingabe zur Verfügung stellt ... Wenn Sie Pipes programmgesteuert unter POSIX-Systemen handhaben möchten (im Test) 'popen' und lassen Sie es öffnen und führen Sie" file "für Sie aus (popen gibt ein' FILE * 'zurück, das die Ausgabe von' file' darstellt). – ShinTakezou