c - 限制c中函数的执行时间

标签 c timeout setjmp

我想在不停止整个程序的情况下限制纯 C 中函数的执行。

我相信 stackoverflow.com 上与此最接近的是该线程的最后一条评论:How to limit the execution time of a function in C/POSIX?

有人说用setjmp和longjm放在函数后面来限制时间,但是线程死了。

有没有人知道这是否真的可行?

干杯

最佳答案

我可以看到两个选项,第一个是每隔几行代码检查一次时间,如果时间太多则返回,但我认为这不是个好主意。

其次,您可以使用线程。同时运行两个函数,一个计时另一个,如果时间太大则杀死第一个。现在我很确定 Windows 和 Linux 有不同的库来创建线程,所以你可以尝试使用一个适用于所有平台的库,比如这个可能 http://openmp.org/wp/ .

我不太熟悉那个库和一般的线程,但我希望它能有所帮助

关于c - 限制c中函数的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31720876/

相关文章:

c - 对大量数据使用合并排序时如何防止堆栈溢出?

c - Gradle C插件: how to solve references between multiple modules

c++ - 使用 sizeof 而不是文字

java - Lock.tryLock超时异常的JUnit测试场景

ios5 - RestKit 超时被忽略

c - alloca() 和 setjmp 的作用是什么?

c - 使用预递增运算符指向指针取消引用的指针

java - Java 中的 HTTP 帖子和多线程

c++ - 在 Arduino IDE 中使用正则表达式库时未定义对 `longjmp' 的引用

C++11 lambda 通过引用捕获可平凡破坏