Hier ist ein einfaches Programm, das Zeilen von stdin liest und sie in stdout ausgibt.
%Vor%Ich verwende den Windows DMD-Compiler v2.052.
Wenn ich das tue: type file.txt | test.exe
Das Programm hängt das Wort "test" an jede Zeile von file.txt an und gibt sie an die Konsole aus.
Allerdings bekomme ich am Ende immer einen Fehler:
std.stdio.StdioException@std\stdio.d(2138): Bad file descriptor
Vielleicht fehlt mir etwas? Es macht mich verrückt! :)
Ich kenne den Befehl type nicht, vielleicht sendet er EOF nicht, wenn die Datei fertig ist. In Linux machst du einfach: ./test & lt; Datei.txt
Dies ist eine Eingabeumleitung. Im Gegensatz zur Rohrleitung, bei der die Programmausgabe zur Standardeingabe wird, wird die Datei zur Standardeingabe des Programms. Es gibt auch eine Ausgabeumleitung, die die Ausgabe des Programms übernimmt und in einer Datei speichert.
./ test & gt; output.txt
Dies ist ein langjähriger Fehler: Ссылка
Was Sie zu tun versuchen, funktioniert definitiv auf Nicht-Windows-Betriebssystemen und sollte auch unter Windows funktionieren. Ich denke, es ist ein Fehler in der Digital Mars-Implementierung der C-I / O-Funktionen, die von std.stdio
umschlossen werden. Ich habe versucht, diesen Fehler vorher zu beheben, aber es ist ihm nie gelungen, die Ursache zu finden.