我注意到 boost.asio 有很多涉及套接字、串行端口和各种非文件示例的示例。谷歌并没有真正为我提供很多关于 asio 是否是执行异步文件 i/o 的好方法或有效方法的信息。
我有大量数据要异步写入磁盘。这可以通过 Windows(我的平台)中的本机重叠 io 来完成,但我更希望有一个独立于平台的解决方案。
我很好奇如果
- boost.asio 有任何类型的文件支持
- boost.asio 文件支持对于日常文件 i/o 来说已经足够成熟了
- 是否会添加文件支持?对此有何展望?
原文由 Doug T. 发布,翻译遵循 CC BY-SA 4.0 许可协议
boost.asio 有任何类型的文件支持吗?
从(我认为)Boost 1.36(包含 Asio 1.2.0)开始,您可以使用 [boost::asio::]windows::stream_handle 或 windows::random_access_handle 来包装 HANDLE 并对其执行异步读写方法在内部使用 OVERLAPPED 结构。
用户 Lazin 还提到 boost::asio::windows::random_access_handle 可用于异步操作(例如命名管道,也包括文件)。
boost.asio 文件支持对于日常文件 i/o 是否足够成熟?
由于 Boost.Asio 本身现在被广泛使用,并且实现在内部使用重叠 IO,我会说是的。
是否会添加文件支持?对此有何展望?
由于在 Asio 网站上没有找到路线图,我想说 Boost.Asio 不会为此功能添加新的内容。尽管贡献者总是有机会向 Boost.Asio 添加代码和类。也许您甚至可以自己贡献缺失的部分! :-)