boost.asio 和文件 i/o 有什么关系?

新手上路,请多包涵

我注意到 boost.asio 有很多涉及套接字、串行端口和各种非文件示例的示例。谷歌并没有真正为我提供很多关于 asio 是否是执行异步文件 i/o 的好方法或有效方法的信息。

我有大量数据要异步写入磁盘。这可以通过 Windows(我的平台)中的本机重叠 io 来完成,但我更希望有一个独立于平台的解决方案。

我很好奇如果

  1. boost.asio 有任何类型的文件支持
  2. boost.asio 文件支持对于日常文件 i/o 来说已经足够成熟了
  3. 是否会添加文件支持?对此有何展望?

原文由 Doug T. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 840
1 个回答

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 添加代码和类。也许您甚至可以自己贡献缺失的部分! :-)

原文由 vividos 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题