使用线程c ++执行shell命令

时间:2014-12-03 06:17:00

标签: c++ multithreading shell

是否可以通过创建线程来执行shell命令,即不使用popen / system或任何fork-exec变体?为什么或为什么不呢?

为了提供更多上下文,我正在运行一个多线程程序,其中一个线程需要执行shell脚本。它目前使用popen()来完成它。但是,由于在多线程程序中分叉被认为是不好的做法,是否可以通过生成线程来实现同样的目的?

1 个答案:

答案 0 :(得分:1)

这是关于多线程& amp;的有用总结。 fork + exec潜在问题:http://www.linuxprogrammingblog.com/threads-and-fork-think-twice-before-using-them

似乎如果你想执行其他程序甚至shell脚本,你必须使用fork + exec,这是不可避免的。只是要小心,并准备你的线程为这样一个"坏"像fork一样的事件。此外,您可以关闭从主应用程序运行的特殊单线程可信执行帮助程序中的所有不必要的文件描述符,如果这是问题。