对于我正在处理的 c++ 程序,我必须调用外部应用程序来执行一些操作。我无法修改应用程序。此操作可能需要太多时间,因此我必须添加超时。我尝试使用 system() 和 boost 线程
int main()
{
[...]
boost::thread t(function1);
t.timed_join(boost::posix_time::seconds(10));
[...]
return 0;
}
void function1()
{
system("external application");
}
但是当我在 10 秒后返回主程序时,外部应用程序仍在后台运行。使用 exec() 而不是 system() 没有任何效果,因为我“丢失”了主要内容。我能做些什么?我在Linux上。