我正在编写一个程序(遗传算法实现),该程序使用“系统”方法执行另一个程序来计算适应度。问题在于,另一个程序有时会无限期地挂起。如何从C++开始执行具有一定时间限制的程序。

POSIX和c++解决方案均受到赞赏。或多或少将在应用程序运行一次,因此解决方案不必太优雅。

我正在运行Linux CentOS发行版,并且正在Cygwin上进行测试。对于编译器,我使用带有Boost库的gcc 4.1.2。

任何帮助都感激不尽

最佳答案

代替system,使用fork/exec惯用语执行程序。在exec之前,将RLIMIT_CPU设置为最大值,并在子级中添加 setrlimit

确保 child 不会忽略SIGXCPU(这是极不可能的)。

10-08 07:56
查看更多