使用线程 c++ 执行 shell 命令
Execute shell command using threads c++
是否有可能通过创建线程来执行shell命令,即不使用popen/system或任何fork-exec变体?为什么或为什么不呢?
为了提供更多上下文,我正在运行一个多线程程序,其中一个线程需要执行 shell 脚本。它目前使用 popen() 来做到这一点。但是,由于在多线程程序中分叉被认为是不好的做法,那么是否有可能通过生成线程来实现相同的目标?
以下是关于多线程和fork + exec潜在问题的有用摘要: https://web.archive.org/web/20170812180443/http://www.linuxprogrammingblog.com/threads-and-fork-think-twice-before-using-them
看来如果要执行其他程序甚至 shell 脚本,就得用 fork+exec,这是不可避免的。只是要小心,并为像 fork 这样的"坏"事件准备你的线程。此外,如果这是问题所在,您还可以在从主应用程序运行的特殊单线程受信任执行帮助程序中关闭所有不必要的文件描述符。
相关文章:
- 使用提升过程获取 shell 命令的标准输出
- 如何在 Linux 下执行 shell 命令 unsing QProcess?
- 在 c++ 中从执行的 shell 命令获取返回状态的安全方法是什么?
- 在 QProcess 中执行 shell 命令
- 在结束运行之前获取 c++ 中的 shell 命令输出
- 如何在 Linux 中同时运行多个 shell 命令
- 如何在QT中使用pro文件在重新编译时执行shell命令?
- 如何将Mongo Shell命令转换为Mongocxx语法
- 使用 exec 在 c++ 中执行 shell 命令
- 使用qmake执行shell命令
- 在 pthread 中运行 shell 命令的良好和优化方法是什么?
- C++使用 shell 命令 WINDOWS 的输出定义宏 /D
- 在C++中执行shell命令时强制环境bash
- 从 shell 命令 Linux 读取值
- 在 c++ 中执行 Linux shell 命令,同时隐藏其输出
- 来自C 代码的Shell命令
- 用一些符号分隔shell命令
- 使用 execvp() 执行 shell 命令
- 有没有C++方法来调用 linux shell 命令
- 重复调用 shell 命令,通过管道捕获标准输出