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!