4 Stimmen

Wie kann TO stdout umgeleitet werden?

Ich habe eine in Ansi C geschriebene UNIX-Anwendung, die Daten direkt in eine Datei schreibt. Diese Datei wird durch einen der Argumentparameter angegeben.

Zu Testzwecken kann ich /dev/null für den Dateinamen verwenden, was die Ausgabe effektiv ins Leere umleitet.

Ich möchte in der Lage sein, die Ausgabe nach stdout durch eine ähnliche Methode umzuleiten. Ist dies möglich? Wenn ja, wie? Ich habe Folgendes versucht, ohne Erfolg:

a.out -f /dev/ttys000

(wobei /dev/ttys000 das durch ein 'w'-Listing angegebene tty war)

15voto

laalto Punkte 143902

/dev/stdout

2voto

Aiden Bell Punkte 27753

Sie könnten die Zeichenkette "stdout" als Argument erkennen und dann den stdout filehandle in C verwenden (1) http://en.wikipedia.org/wiki/File_descriptor

Oder verwenden Sie /dev/stdout oder /dev/fd/1

Wenn es sich um eine "eingebaute" Funktion und nicht um eine vorübergehende Sache zum Testen handelt, sollten Sie vielleicht die C-Funktionen für den stdout-Dateideskriptor und nicht für den Geräteknoten verwenden, da der C-Standard imho etwas robuster ist als der POSIX-Standard.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X