gpt4 book ai didi

c++ - 如何使用 boost::process::system 运行脚本?

转载 作者:行者123 更新时间:2023-12-01 14:47:45 28 4
gpt4 key购买 nike

我的脚本:

ps 辅助 | awk '{s += $3} END {print s}'

所以我正在尝试执行它

namespace bp = boost::process;

bp::ipstream out;
bp::system("ps aux | awk '{s += $3} END {print s}'", bp::std_out > out);

std::string line;
std::getline(out, line);

输出:

error: garbage option

我做错了什么?

最佳答案

实际上您不需要手动管道。您只需要将您的命令告知 shell:

Live On Coliru

#include <boost/process.hpp>
#include <iostream>
#include <iomanip>

int main() {
namespace bp = boost::process;

bp::ipstream out;
std::vector<std::string> args {
"-c", "ps aux | awk '{s += $3} END {print s}'"
};
bp::system(bp::search_path("sh"), args, bp::std_out > out);

for (std::string line; std::getline(out, line);) {
std::cout << "output line: " << std::quoted(line) << "\n";
}
}

打印,例如:

output line: "90.4"

关于c++ - 如何使用 boost::process::system 运行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62064910/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com