I'm trying to call a process with a string to its stdin, with Boost-1.64.0. The current code is :
  bp::opstream inStream ;
  bp::ipstream outStream;
  bp::ipstream errStream;
  bp::child child(
    command, // the command line
    bp::shell,
    bp::std_out > outStream,
    bp::std_err > errStream,
    bp::std_in  < inStream);
  // read the outStream/errStream in threads
  child.wait();
The problem is that the child executable is waiting for its stdin EOF. Here child.wait() is hanging indefinitely…
I tried to used asio::buffer, std_in.close(),… But no luck. The only hack I found was to delete() the inStream… And that's not really reliable.
How am I supposed to "notify" the child process and close its stdin with the new boost::process library ?
Thanks !