phpbar.de logo

Mailinglisten-Archive

[php] proc_close und Exit-Code

[php] proc_close und Exit-Code

Carsten Möhrke cmoehrke at netviser.de
Die Aug 10 18:19:39 CEST 2004


Hai Listlinge :-)

Also proc_close() soll ja theoretisch den Exit-Code eines Programms
weitergeben. Folgener Code liefert als Exit-Code allerdings immer -1:

<?php
        $ds = array(
                0 => array("pipe", "r"),
                1 => array("pipe", "w"),
                2 => array("pipe","w")
        );

        $res = proc_open(
                "ls",
                $ds,
                $pipes
        );
	// $exit=proc_close($res);
        while ($dat=fgets($pipes[1],1024))
        {
            echo "OUT: $dat";
        }
        while ($dat=fgets($pipes[2],1024))
        {
            echo "ERR:$dat";
        }
        fclose($pipes[0]);
        fclose($pipes[1]);
        fclose($pipes[2]);
        $exit=proc_close($res);
        echo("Exit: $exit");
?>

OK, schein ein Bug zu sein nach allem was ich gelesen habe. Führe ich das
proc_close allerdings aus bevor ich die Pipes auslese (das auskommentierte
proc_close) bekomme ich den korrekten Exit-Code. Das proc_close auszuführen
bevor ich auf die Pipes zugreife kann natürlich nicht die Lösung sein, ist
schon klar. Also, nun die Preisfrage: Gibt es einen Workaround um an den
Exit-Code zu kommen ohne auf PHP 5.1 zu warten wie wez es hier:
http://bugs.php.net/bug.php?id=22999 vorschlägt? *dummguck*

*wink*
Carsten


php::bar PHP Wiki   -   Listenarchive