21.22 Den Standardfehlerkanal eines Programms einlesen
Problem
Sie wollen die Fehlerausgabe eines Programms auslesen; zum Beispiel wollen Sie die Systemaufrufe, die von strace(1) angezeigt werden, einsehen.
Lösung
Leiten Sie den Standardfehlerkanal zur Standardausgabe um, indem Sie 2>&1
an die Kommandozeile, die an popen( )
durchgegeben wird, anfügen. Lesen Sie die Standardausgabe aus, indem Sie die Pipeline im r
-Modus öffnen:
$ph = popen('strace ls 2>&1','r') or die($php_errormsg); while (!feof($ph)) { $s = fgets($ph,1048576) or die($php_errormsg); } pclose($ph) or die($php_errormsg);
Diskussion
Sowohl in der sh unter Unix als auch in der Windows-Shell cmd.exe ist der Standardfehlerkanal der Datei-Deskriptor 2 und die Standardausgabe der Datei-Deskriptor ...
Get PHP 5 Kochbuch now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.