Je suis en train de jouer avec la bibliothèque de processus boost. Mais pour certaines raisons, je ne parviens pas à envoyer quelque chose à stdin:Écrire dans stdin d'un processus enfant
#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;
}
Je me attends que cela fonctionne essentiellement comme
echo "hi, there" | cat
Mais la sortie est vide. Qu'est-ce que je rate?
Merci. Il est là dans le document de l'API, mais j'ai réussi à l'interpréter complètement ... – choeger