etreu Geschrieben 24. Mai 2004 Teilen Geschrieben 24. Mai 2004 Ich will mittels pipe einen Prozess starten und mit dessen Ausgabe weiterarbeiten. Das Einlesen der Standardausgabe funktioniert auch ohne Probleme. Wenn allerdings Fehler bei diesem Prozess auftreten, werden diese auf die Standardfehlerausgabe geschrieben. Wie kann ich diese Lesen? # auszug (lesen der standardausgabe) $systemCall = "any Command"; open(IN,$systemCall) or die "fehler: $! $?"; while(<IN>) { # ... } close(IN); [/php] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 24. Mai 2004 Teilen Geschrieben 24. Mai 2004 Dafür gibt's mehrere Möglichkeiten: Die erste Möglichkeit ist den open Befehl wie folgt zu benutzen: open PH, '/bin/date 2>&1 |'; Dadurch wird STDERR auf STDOUT umgeleitet und davon gelesen.Die zweite Möglichkeit besteht darin open2 oder open3 zu benutzen. Siehe hierzu auch die Dokumentationen IPC::Open2 und IPC::Open3. Diese Befehle liefern Dir Handles auf STDIN, STDOUT und ggf. STDERR. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 25. Mai 2004 Autor Teilen Geschrieben 25. Mai 2004 Dafür gibt's mehrere Möglichkeiten: Die erste Möglichkeit ist den open Befehl wie folgt zu benutzen: open PH, '/bin/date 2>&1 |'; Dadurch wird STDERR auf STDOUT umgeleitet und davon gelesen.Die zweite Möglichkeit besteht darin open2 oder open3 zu benutzen. Siehe hierzu auch die Dokumentationen IPC::Open2 und IPC::Open3. Diese Befehle liefern Dir Handles auf STDIN, STDOUT und ggf. STDERR. besten dank! Habe auch gerade was gefunden:http://www.perldoc.com/perl5.8.4/pod/perlfaq8.html#How-can-I-capture-STDERR-from-an-external-command-. Da steht auch drin, dass das Lesen nur mittels system() funktioniert oder eben über die oben angesprochenen Module. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.