问题描述
我是 Boost 库的新手。我正在尝试使用 bp::child c()
生成子进程并将标准输出重定向到管道/流。我面临的问题是,将该流转换为字符串需要使用 getline
,这是阻塞的。因此,如文档中所述,创建子进程并执行它是非阻塞的。但是由于getline是阻塞的,getline之后的代码必须等到子进程执行完毕。
是否有非阻塞替代 getline ?或者我应该尝试以不同的方式将子进程的输出传达给父进程?以下是供参考的示例代码:
bp::ipstream p;
bp::child c(cmd,bp::std_out > p);
std::string line;
std::getline(p,line)
std::cout<<line;
//doSomething();
c.wait();
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)