我用C创建了两个程序。第一个获取一个数字并打印它的double值,第二个打印四个数字。
我想通过PHP执行它们 。我已经使用proc_open完成了它,并且如果我每次只执行一个程序,它就可以正常工作。
我必须给第一个程序编号 ,并将其输出作为输入传递给第二个程序。虽然我使用两个proc_open来创建两个进程,但整个事情都不起作用。 我想要做的是这样的:PHP用proc_open执行两个C程序
$process1 = proc_open($command_exe1, $descriptorspec1, $pipes1, $cwd);
$process2 = proc_open($command_exe2, $descriptorspec2, $pipes2, $cwd);
fwrite($pipes1[0], $posted);
fwrite($pipes2[0], $pipes1[1]);
fclose($pipes1[0]);
fclose($pipes2[0]);
while(!feof($pipes1[1])) {
$StdOut1 = stream_get_contents($pipes1[1]);
}
echo $StdOut1;
while(!feof($pipes2[1])) {
$StdOut2 = stream_get_contents($pipes2[1]);
}
echo $StdOut2;
fclose($pipes1[1]);
fclose($pipes2[1]);
proc_close($process1);
proc_close($process2);
我知道这是做这件事的错误的方式,但我想不出别的所以...任何帮助将受到欢迎。 注意:我正在使用Windows。
挑剔:有没有这样的事,作为一个“C脚本”。你的第二个proc_open调用中还有一个输入错误,在第一个参数后面。 –
我的意思是C代码,简单的C程序。至于','和';'在行结束时,复制过程中可能是一个错误。 – georgia