O'Reilly logo

PHP 5 Kochbuch, Third Edition by Stephan Schmidt, Ulrich Speidel, Matthias Brusdeylins, Carsten Lucke, Adam Trachtenberg, David Sklar

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

21.21 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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required