boost :: process子程序在所有标准输出都可以读取之前终止

时间:2018-11-08 13:48:48

标签: c++ boost boost-process

我想使用boost-process从命令中读取标准输出:

std::string command = "cat /tmp/my_file";

namespace bp = boost::process;
bp::ipstream is;
bp::child c(command, bp::std_out > is);

std::string line;

int no_lines = 0;
while (c.running() && std::getline(is, line) && !line.empty()) {
    ++no_lines;
}
c.wait();

std::cout << "line count: " << no_lines << "\n";

这几乎与提升过程tutorial相同。

为了进行测试,“命令”只是转储包含10000行的文本文件。

问题是我的代码没有从命令的所有输出中读取(对于测试用例,它仅读取9700行)。

我在做什么错了?

在读取所有标准输出之前,子进程似乎正在终止。

0 个答案:

没有答案