std::getline時會等待斷行符,但需要注意的是
在使用pipe redirect時,會有flush的問題
boost::process::ipstream child_stdout; boost::process::opstream child_stdin; boost::process::child child_process; child_process = boost::process::child(exe_path, boost::process::std_out > child_stdout, boost::process::std_err > child_stdout, boost::process::std_in < child_stdin); //... child_stdin << "QUIT" << std::endl; //OK child_stdin << "QUIT\n"; //NOT OK child_stdin << "QUIT\n" << std::flush; //OK
std::endl本身隱含了flush,因此送出斷行符較佳的方式還是使用std::endl