我想在php中为命令创建一个setTimeOut,所以当我使用proc_open
时,我可以在执行期间控制命令,但是如果此命令等待用户输入,则在特定时间后不能终止< BR />
C ++
#include <iostream>
using namespace std;
int main()
{
int x;
cin >> x;
cout << x;
return 0;
}
然后我编译这个文件并得到一个programe.exe
文件,让php脚本运行这个可执行文件并在5秒后终止
test.php的
<?php
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "error-output.txt", "a") // stderr is a file to write to
);
$time = time();
$process = proc_open("programe.exe", $descriptorspec, $pipes);
while($s= fgets($pipes[1], 1024))
{
echo $s;
if(time()-$time>5){
//proc_close($process);
system("taskkill /im programe.exe /f");
break;
}
}
//proc_close($process);
echo "bye";
?>
当我运行php test.php
时,它应运行脚本并在5秒后终止但发生的事情是,如果我将c ++代码更改为
while(true)
{
cout<<"Hello";
}
它成功运行并在5秒后终止