Wiele danych wejściowych za pomocą proc_open ()
Obecnie pracuję nad programem online. Piszę skrypt php, który wykonuje polecenie w wierszu poleceń za pomocą proc_open () (pod Linux Ubuntu). To jest mój kod do tej pory:
<?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);
}
?>
moc to program, który 2 razy prosi o dane wejściowe (pobiera bazę i wykładnik i oblicza podstawę ^ wykładnik). Jest napisane w Zgromadzeniu. Ale kiedy uruchamiam ten skrypt, otrzymuję błędne dane wyjściowe. Moje dane wyjściowe to „1”, ale oczekuję 4 ^ 5 jako wyjścia.
Kiedy uruchamiam program, który pobiera jedno wejście, działa (przetestowałem łatwy program, który zwiększa wprowadzoną wartość o jeden).
Myślę, że brakuje mi czegoś w odniesieniu do polecenia fwrite. Czy ktoś mógłby mi pomóc?
Z góry dziękuję!