3
私はブーストプロセスライブラリを使いこなしています。しかし、いくつかの理由から、私は標準入力に何かを送信するために管理することはできません。子プロセスのstdinに書き込む
#include <iostream>
#include <boost/process.hpp>
using namespace boost::process;
int main(int argc, char** argv) {
boost::asio::io_service ios;
std::future<std::string> outdata;
std::future<std::string> errdata;
child c("/usr/bin/cat",
std_out > outdata,
std_err > errdata,
std_in < "hi, there!", ios);
ios.run();
std::cout << "stdout: " << outdata.get() << std::endl;
std::cerr << "stderr: " << errdata.get() << std::endl;
}
私は、これは、本質的に
echo "hi, there" | cat
のように動作するように期待したいが、出力は空です。私は何が欠けていますか?
ありがとうございました。それはAPIのドキュメントにありますが、私はそれを完全に誤解してしまいました.... – choeger