C++ 如何指导g++;n秒后停止
我想知道,在C++ 如何指导g++;n秒后停止,c++,g++,flags,C++,G++,Flags,我想知道,在g++中是否有任何限制运行时间的标志选项,比如堆栈大小-stack\u size=any\u limit和错误数-fmax errors=n。假设我想在20秒后停止执行,那么除了在循环时添加,我还可以使用执行相同操作的任何标志。您的问题令人困惑 编译器主要受CPU限制。因此,如果要限制编译时间,请使用ulimit-t20然后,下一个g++命令将在20秒的CPU时间后被终止(使用SIGXCPU)。但是20秒的编译时间是一个很大的数目 您可以考虑使用 -fTealTebug < /C>,
g++
中是否有任何限制运行时间的标志选项,比如堆栈大小-stack\u size=any\u limit
和错误数-fmax errors=n
。假设我想在20秒后停止执行
,那么除了在循环时添加,我还可以使用执行相同操作的任何标志。您的问题令人困惑
编译器主要受CPU限制。因此,如果要限制编译时间,请使用ulimit-t20
然后,下一个g++
命令将在20秒的CPU时间后被终止(使用SIGXCPU
)。但是20秒的编译时间是一个很大的数目
您可以考虑使用<代码> -fTealTebug < /C>,您可以更准确地将GCC扩展到编译时间。由于GCC是,您甚至可以根据自己的需要对其进行修补(阅读有关它的内容)。采用这种方法,预算可能需要一周或几个月的工作
但是,如果您询问如何要求g++
编译器神奇地限制生成的可执行文件的执行时间(或运行时间),这不是编译器的事
一种可能是在程序的C++代码中添加一些时间点,测试当前超时。IIRC,政府正在这么做。你可以使用一个预处理器,例如生成这样的C++代码。您可以与您的信号处理程序(read)一起使用一些
volatile sigamatic\t timedout代码>变量,该变量将由某些宏进行测试,例如
#define TEST_TIMEOUT() do { if (timedout) handle_timeout(); } while(0)
然后,在C++代码中的适当位置放置<代码> TestJoTimeOut[2)/Cuff>。雅克·皮特拉特(Jacques Pitrat)的最后一本书提出了这样一种方法
<>你的C++应用程序(也许用OR编码)也可能有一些。然后请参见,以及中记录的自我欺骗
读取由调用的系统调用
关于一般的时间安排,请阅读。在您的特定C++代码中,您可能对使用或(和您可以在开始时调用)感兴趣。
另见
也要注意,和。可能有兴趣…或(ulimit-t20;gcc…
@JonathanWakely这是如何工作的?似乎是一个命令,但它没有杀死我尝试的睡眠,(ulimit-t1;sleep 20)
ulimit-t1
限制了CPU时间,而睡眠
不会消耗任何CPU时间!