如何设置程序的超时?

eno*_*yhs 4 linux windows command-line timeout

我目前正在尝试为各种编程任务制作一个小型测试应用程序.它将运行可执行文件,该文件将在另一个文件上生成输出,然后将其与answer进行比较.到目前为止,我认为我将变得容易,但我有一个问题......

我想限制此可执行文件可以运行的时间,例如1秒或2秒.所以我想知道是否有一个选项可以在达到时间限制时停止/退出程序.

现在的操作系统不是问题,它可以是windows或linux,虽然我以后会把程序切换到linux,所以如果有人可以给我一些如何做到这一点的提示会更好.

那么"喋喋不休",我只会问一个问题: 有没有办法设置程序在Linux或Windows上运行多长时间?

Bri*_*new 6

这个脚本看起来像是为Linux做的工作(摘录如下).

cleanup()
{
    kill %1 2>/dev/null             #kill sleep $timeout if running
    kill %2 2>/dev/null && exit 128 #kill monitored job if running
}

set -m               #enable job control
trap "cleanup" CHLD  #cleanup after timeout or command
timeout=$1 && shift  #first param is timeout in seconds
sleep $timeout&      #start the timeout
"$@"                 #start the job
Run Code Online (Sandbox Code Playgroud)

它设置为超时运行的sleep命令,然后执行给定的程序.当睡眠退出时,脚本将清理并退出(从而取消生成的进程).