Mailinglisten-Archive |
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