Entrada múltiple con proc_open ()

Actualmente estoy trabajando en un programa en línea. Estoy escribiendo un script php que ejecuta un comando en la línea de comandos con proc_open () (bajo Linux Ubuntu). Este es mi código hasta ahora:

<?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 es un programa que solicita entrada 2 veces (toma una base y un exponente y calcula la base ^ exponente). Está escrito en la Asamblea. Pero cuando ejecuto este script, me sale mal. Mi salida es "1" pero espero 4 ^ 5 como salida.

Cuando ejecuto un programa que toma una entrada, funciona (he probado un programa fácil que incrementa el valor ingresado en uno).

Creo que me estoy perdiendo algo con respecto al comando fwrite. ¿Podría alguien ayudarme por favor?

¡Gracias por adelantado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta