我想尝试一下PHP proc_open的简单示例。我有一个带有以下代码的C程序
#include <stdio.h>
int main(int argc, char **argv)
{
int a;
scanf("%d", &a);
printf("%d\n", a*a);
return 0;
}
并且PHP文件具有:
$filename3='start D:\Project2\Debug\Project2.exe';
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
);
$process=proc_open($filename3,$descriptorspec,$pipes);
if (is_resource($process))
{
fwrite($pipes[0],"5");
fclose($pipes[0]);
echo stream_get_contents($pipes[1]);
}
现在,如果我运行这个php,它会在一个单独的窗口中启动Project2.exe,但它不会从管道接收任何输入并等待用户输入,也不会打印stdout的内容。
但是,如果我从 filename3 变量中删除 start 关键字并使其看起来像
$filename3='D:\Project2\Debug\Project2.exe
并运行PHP文件,C程序在后台运行,我可以在网页中查看stdout的内容。
我想单独启动程序并使其从PHP文件接收输入。有可能吗?