2012-04-13 8 views
0

Wie kann ich alle Eingabe (cin) und Ausgabe (Cout, Cerr) von einem Programm, dessen Eingabe aus Datei (mit "<") genommen wird, speichern? Ich möchte, dass der Eingang und der Ausgang in Ordnung sind (, so dass jedem Eingang der entsprechende Ausgang folgt, als würde ich den Eingang in mich eingeben).Eingabe/Ausgabe-Umleitung von einer Befehlszeile ausführbar in Datei

Ich habe versucht ">", um alles in eine Datei auszugeben, aber das spart nur die Standardausgabe (keine Eingabe/Cerr), und kopieren einfach nur die Befehlszeilenausgabe gibt nur die Ausgabe ohne die Eingabe (wegen wie " < "funktioniert).

Gibt es eine Möglichkeit, alles (Ausgang + Eingang) in die Datei in der Reihenfolge zu schreiben?

EDIT: bearbeitet für Klarheit

EDIT2: Ich habe erkannt, dass es unmöglich ist, zu tun, was ich versuche, da die Konsole zu tun weiß nichts darüber, wann die Befehle tatsächlich eingegeben werden würde. Ich muss manuell Befehle eingeben und den Befehl "script" verwenden, um alle Ein-/Ausgaben zu protokollieren.

+0

'myProg < in > heraus; Katze raus >> combined_out'. –

Antwort

3

Sie müssen cerr in den Stream hinzuzufügen

Befehl> Datei 2 &> 1

Das bedeutet 2 (stderr) setzen auf 1 (stdout) als auch.

+0

Dies gibt nur die Ausgabe ohne die Eingabe (denken Sie daran, die Eingabe wird auch von einer Datei umgeleitet) – Dilation

+0

stdin ist ein separater Stream und nicht von der Kombination betroffen: Befehl < inputfile > Ausgabedatei 2 &> 1 – johnshen64

Verwandte Themen