>只要有足够的数据,就可以读入n个大小的块.
>如果没有足够的数据,请读取部分块.
>如果没有可用数据,则阻塞直到有一些数据(即使它可能小于n).
目标是允许有效传输大型数据集,同时立即处理“控制”代码(而不是让它们在某处部分填充的缓冲区中逗留).
我知道我可以通过使用线程和istream :: get()循环,或者通过编写一堆特定于平台的代码来实现这一点(因为你不能在windows中的文件句柄上选择())…((那里也是istream :: readsome()似乎很有希望,但我在谷歌上找到的唯一结果是人们说它实际上并不能很好地工作.))
由于我没有用这些API做过多编码,也许还有更好的方法.
解决方法 也许 boost::asio对你有用吗? 总结以上是内存溢出为你收集整理的stdin / stdout / stderr上的跨平台(linux / Win32)非阻塞C IO全部内容,希望文章能够帮你解决stdin / stdout / stderr上的跨平台(linux / Win32)非阻塞C IO所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)