Entrada múltipla com proc_open ()

Atualmente estou trabalhando em um programa online. Eu estou escrevendo um script php que executa um comando na linha de comando com proc_open () (no Linux Ubuntu). Este é o meu código até agora:

<?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 é um programa que pede entrada duas vezes (é preciso uma base e um expoente e calcula o expoente da base). Está escrito em Assembly. Mas quando eu executo este script, recebo saída errada. Minha saída é "1", mas espero que seja 4 ^ 5 como saída.

Quando eu executo um programa que recebe uma entrada, ele funciona (testei um programa fácil que incrementa o valor inserido em um).

Eu acho que estou faltando alguma coisa sobre o comando fwrite. Alguém poderia me ajudar?

Desde já, obrigado!

questionAnswers(1)

yourAnswerToTheQuestion