我目前正在开发一个在线程序。我正在编写一个 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 命令的一些东西。有人可以帮我吗?
提前致谢!