我正在尝试使用Boost.Process来构建test.exe输出的测试。
std::string exe = "test.exe";
boost::asio::io_service ios;
boost::process::async_pipe ap(ios);
boost::process::opstream stream
boost::process::child sim(exe, boost::process::std_out > ap, boost::process::std_in < stream);
std::vector<char> buf;
boost::asio::async_read(ap, boost::asio::buffer(buf), [](const boost::system::error_code &ec, std::size_t size) {});
ios.run();
stream << "Test";
如果我运行上面的代码,则buf为空。使buf包含“Test”的最简单方法是什么?对于我的测试,我需要将一些字符串发送到cin并捕获生成的cout。
这是我的简单测试程序:
int main() {
std::string line;
while (std::cin) {
std::getline(std::cin, line);
std::cout << line;
}
}