我試圖用一個字符串調用一個進程到它的stdin,用boost-1.64.0。 當前的代碼是:關閉boost :: process子進程的stdin
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();
的問題是,孩子可執行文件正在等待它的標準輸入EOF。這裏child.wait()無限期懸掛...
我試圖使用asio :: buffer,std_in.close(),但是沒有運氣。 我發現的唯一破解是刪除()inStream ...並且這不是很可靠。
我應該如何「通知」子進程並關閉它的stdin和新的boost ::進程庫?
謝謝!
你是什麼意思,_「delete()inStream」_?這對我來說沒有多大意義。 – sehe