因此,我目前正在使用boost::process::ipstream
来读取孩子的stdout
。我尝试实现其协议的程序不会以任何方式对流进行定界,因此我不确定应该如何去读取响应(因为没有明确的“响应结束”令牌,例如换行符)等)
应该如何处理呢?
如果我只写in.read(buffer, x);
,其中x
的值小于或等于响应的长度,则可以成功读取响应的子字符串。但是,如果我尝试通过定义的缓冲区大小读取整个响应,则它会在尝试读取最终缓冲区块时阻塞。
我看过是否有值得尝试的骇客技巧,例如程序会回显给用户的某种指定令牌-因此您可以将其用作分隔符。到目前为止,我什么都没找到。
任何指导将不胜感激。
谢谢。