Ale*_*lex 4 c++ process execution-time
我正在用C++实现一个检查系统.它使用不同的测试运行可执行文件.如果解决方案不正确,可能需要永远完成某些硬测试.这就是为什么我想将执行时间限制为5秒.
我正在使用system()函数来运行可执行文件:
system("./solution");
Run Code Online (Sandbox Code Playgroud)
.NET有一个很棒的WaitForExit()方法,那么本机C++呢?我也使用Qt,因此欢迎基于Qt的解决方案.
那么有没有办法将外部进程的执行时间限制为5秒?
谢谢
使用a QProcess,QTimer所以你可以在5秒后杀死它.就像是;
QProcess proc;
QTimer timer;
connect(&timer, SIGNAL(timeout()), this, SLOT(checkProcess());
proc.start("/full/path/to/solution");
timer.start(5*1000);
Run Code Online (Sandbox Code Playgroud)
并实施checkProcess();
void checkProcess()
{
if (proc.state() != QProcess::NotRunning())
proc.kill();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3427 次 |
| 最近记录: |