![](/img/trans.png)
[英]Is it safe to use fork() with boost::asio::ip::tcp::iostream?
[英]Is there a way to use std::iostream objects with boost::asio?
我有一个std::iostream
对象(例如fstream
),我想将它用于boost::asio
异步操作。 那可能吗? 我知道 asio 不支持文件操作,但有时异步处理文件 IO 很有用。 我可以使用特定于平台的本机文件描述符,然后将它们与 asio 一起使用,但我认为在 C++ 中使用标准 C++ 流会更优雅,也更可移植。
虽然 Boost.Asio 不支持文件操作,但它确实为应用程序以异步方式执行文件操作提供了工具集。 实现这一点的常用方法是使用 Boost.Asio 创建一个线程池。 应用程序会将文件操作发布到线程池中,并立即返回。 然后线程池将同步执行操作,并在完成时调用或发布完成处理程序。
有几点需要考虑:
io_service
中。最后, libuv是一个提供同步和异步文件操作的 C 库。 它可以作为有价值的底层实现或参考材料。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.