gpt4 book ai didi

c++ - 如果需要超过 5 秒,如何退出使用 C++ 运行的进程?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:59 26 4
gpt4 key购买 nike

我正在用 C++ 实现一个检查系统。它运行具有不同测试的可执行文件。如果解决方案不正确,则可能需要很长时间才能完成某些严格的测试。这就是为什么我想将执行时间限制为 5 秒。

我正在使用 system() 函数来运行可执行文件:

system("./solution");

.NET 有一个很棒的 WaitForExit() 方法,那么原生 C++ 呢?我也在使用 Qt,因此欢迎使用基于 Qt 的解决方案。

那么有没有办法限制外部进程的执行时间为5秒呢?

谢谢

最佳答案

QProcessQTimer 结合使用,这样您就可以在 5 秒后终止它。类似的东西;

QProcess proc;
QTimer timer;

connect(&timer, SIGNAL(timeout()), this, SLOT(checkProcess());
proc.start("/full/path/to/solution");
timer.start(5*1000);

并实现checkProcess();

void checkProcess()
{
if (proc.state() != QProcess::NotRunning())
proc.kill();
}

关于c++ - 如果需要超过 5 秒,如何退出使用 C++ 运行的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4573846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com