运行exe并在一段时间后终止它 - 在php中

时间:2013-10-18 09:29:10

标签: php exe

我有.exe个文件。我想运行它并在一段时间后(假设在1.5秒之后)通过终止.exe并报告time limit exceed。我花了两天时间才发现这一点,但没有成功。

P.S。我无法使用pthread扩展名。我在安装它时遇到了麻烦。 :(

编辑:我现在的问题是当proc_terminate() $process php脚本停止等待run.exe,但run.exe仍在运行时(我可以在任务管理器中看到它。我的PHP脚本:

<pre>
<?php

$descriptorspec = array(
    1 => array('pipe', 'w')
    );
$process = proc_open("C:/wamp/www/yet-another-online-judge/run.exe", $descriptorspec, $pipes);

if (is_resource($process)) {
    usleep(2.5*1000000); // wait 2.5 secs

    $status = proc_get_status($process);
    if ($status['running'] == true) {
        proc_terminate($process);
        echo "VERDICT : TLE\n";
    } else {
        echo "EXIT CODE : {$status['exitcode']}\n";
        echo "OUTPUT :\n";

        while (!feof($pipes[1]))
            echo fgets($pipes[1]);

        fclose($pipes[1]);
        proc_close($process);
    }
}

?>
</pre>

run.cpp:

#include <iostream>
using namespace std;

int main() {
    cout << "1+1=3";
    while (1);
    return 0;
}

如果您不理解C ++:run.exe将1+1=3输出到stdout,然后进入infinte循环。

那么有没有办法实际终止run.exe ??

0 个答案:

没有答案