我正在寻找一种从 C++ 程序中运行命令时获取命令输出的方法。我看过使用 system()
函数,但这只会执行一个命令。这是我正在寻找的示例:
std::string result = system("./some_command");
我需要运行任意命令并获取其输出。我查看了 boost.org ,但没有找到任何可以满足我需要的东西。
原文由 Misha M 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在寻找一种从 C++ 程序中运行命令时获取命令输出的方法。我看过使用 system()
函数,但这只会执行一个命令。这是我正在寻找的示例:
std::string result = system("./some_command");
我需要运行任意命令并获取其输出。我查看了 boost.org ,但没有找到任何可以满足我需要的东西。
原文由 Misha M 发布,翻译遵循 CC BY-SA 4.0 许可协议
请注意,您可以通过将输出重定向到文件然后读取它来获取输出
它显示在 std::system
的文档中
您可以通过调用 WEXITSTATUS
宏来接收退出代码。
int status = std::system("ls -l >test.txt"); // execute the UNIX command "ls -l >test.txt"
std::cout << std::ifstream("test.txt").rdbuf();
std::cout << "Exit code: " << WEXITSTATUS(status) << std::endl;
原文由 Pikacz 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
C++11 之前的版本:
将
popen
和pclose
替换为_popen
和_pclose
。