使用Php& amp; SetTime out for command C ++

时间:2018-04-17 19:35:58

标签: php

我想在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秒后终止

0 个答案:

没有答案