我们正在开发一个用C ++编写的消耗内存的多线程应用程序。我们必须执行许多shellscript / linux命令(并获取返回代码)。
阅读该文章后,我们清楚地了解到在我们的上下文中使用system()是个坏主意。
一种解决方案是在程序启动之后和创建任何线程之前进行派生,但是与该进程的通信可能并不容易(套接字,管道?)。
我们考虑的第二个解决方案可能包括用python(使用xinetd?)编写的专用守护程序,该守护程序可以处理我们的系统调用。
你有没有那个问题?您是如何解决的?
注意:这是一篇更完整的文章,解释了此问题:http : //developers.sun.com/solaris/articles/subprocess/subprocess.html 他们建议使用posix_spawn,它使用vfork()而不是fork()(用于系统())。