Многократный ввод с помощью proc_open ()
В настоящее время я работаю над онлайн-программой. Я пишу скрипт php, который выполняет команду в командной строке с помощью proc_open () (под Linux Ubuntu). Это мой код до сих пор:
<?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 - это программа, которая запрашивает ввод 2 раза (она берет основание и показатель степени и вычисляет показатель степени ^). Это написано на ассемблере. Но когда я запускаю этот скрипт, я получаю неправильный вывод. Мой вывод "1" но я ожидаю 4 ^ 5 в качестве выхода.
Когда я запускаю программу, которая принимает один ввод, она работает (я тестировал простую программу, которая увеличивает введенное значение на единицу).
Я думаю, что я что-то упустил в отношении команды fwrite. Может ли кто-нибудь помочь мне?
Заранее спасибо!