Mehrfacheingabe mit proc_open ()

Ich arbeite gerade an einem Online-Programm. Ich schreibe ein PHP-Skript, das einen Befehl in der Befehlszeile mit proc_open () ausführt (unter Linux Ubuntu). Das ist mein Code bis jetzt:

<?php
$cmd = "./power";

$descriptorspec = array(
   0 => array("pipe", "r"),
   1 => array("pipe", "w"),
   2 => array("pipe", "w"),
);

$process = proc_open($cmd, $descriptorspec, $pipes);

if (is_resource($process)) {

    fwrite($pipes[0], "4");
    fwrite($pipes[0], "5");
    fclose($pipes[0]);

    while($pdf_content = fgets($pipes[1]))
    {
        echo $pdf_content . "<br>";
    }
    fclose($pipes[1]);

    $return_value = proc_close($process);
}
?>

power ist ein Programm, das zweimal nach Eingaben fragt (es nimmt eine Basis und einen Exponenten und berechnet die Basis ^ Exponenten). Es ist in Assembly geschrieben. Aber wenn ich dieses Skript ausführe, erhalte ich eine falsche Ausgabe. Meine Ausgabe ist "1", aber ich erwarte 4 ^ 5 als Ausgabe.

Wenn ich ein Programm mit einer Eingabe starte, funktioniert es (ich habe ein einfaches Programm getestet, das den eingegebenen Wert um eins erhöht).

Ich glaube, ich vermisse etwas in Bezug auf den Befehl fwrite. Könnte mir bitte jemand helfen?

Danke im Voraus!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage