d Programmiersprache: Standardeingabe Problem oder Missverständnis?

8

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! :)

    
Redger 07.04.2011, 13:41
quelle

2 Antworten

4

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

    
he_the_great 07.04.2011, 15:26
quelle
6

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.

    
dsimcha 07.04.2011 18:00
quelle

Tags und Links