und - stdout linux




Die Ausgabeumleitung funktioniert für ein bestimmtes Programm nicht (2)

Basierend auf Ihrem strace klingt es wie das Programm testet wenn stdin und / unsere stdout ein tty ist. Ich habe es nie benutzt, aber Sie könnten versuchen, empty.sourceforge.net zu verwenden. Es wird angenommen, dass ein Pseudo-Tty erstellt wird, der die Überprüfung Ihres Programms täuschen sollte.

Unter Linux versuche ich, stdout von einer Konsolenanwendung in eine Datei statt in eine Konsole umzuleiten. Ich habe den Quellcode nicht. Ich habe mehrere Methoden ausprobiert, aber alle führten zu einer leeren Datei. Ohne Ausgabeumleitung funktioniert alles einwandfrei (ich sehe Konsolenmeldungen).

Ich habe versucht, zum Beispiel:

progname > out.txt
progname > out.txt 2&>1

Und nichts erscheint in out.txt und in der Konsole.

Ich habe versucht, die Anwendung mit strace auszuführen. Wenn ich keine Umleitung verwende, sehe ich Zeilen wie -

write(1, "bla bla", 8)

Wenn ich die Ausgabeumleitung einführe, gibt es überhaupt keine Schreibaufrufe, was mich denken lässt, dass die Anwendung nach etwas sucht, bevor sie die Nachricht schreibt. Nach was sucht die Anwendung? Wie kann ich es umgehen?

Ich benutze CentOS 5.5 und Bash.


Versuchen Sie, jeweils einen einzelnen Stream nach / dev / null umzuleiten, um zu sehen, auf welcher Seite er gedruckt wird:

progname > /dev/null
progname 2> /dev/null

Dann sehen Sie, welchen Stream Sie erfassen müssen. Aus technischen Gründen drucken einige Programme sogar informative Nachrichten auf stdout.





output-redirect