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

标签 c++ boost file-io boost-asio

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

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

我很好奇

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

最佳答案

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 可用于异步操作(例如命名管道,也包括文件)。

对于日常文件 i/o 的 boost.asio 文件支持是否足够成熟?

由于 Boost.Asio 本身现在已经被广泛使用,并且实现在内部使用重叠 IO,我会说是的。

是否会添加文件支持?前景如何?

由于在 Asio 上没有找到路线图网站,我会说 Boost.Asio 不会为此功能添加新功能。尽管贡献者总是有机会向 Boost.Asio 添加代码和类。也许您甚至可以自己贡献缺失的部分! :-)

关于c++ - boost.asio 和文件 i/o 有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/378515/

相关文章:

c - 从C中的文件中读取字符串

c++ - 使用 const & 打印出列表

c++ - 类中的运算符如何工作?

c++ - 将 filtering_istream 类型的变量转换为 ifstream 类型?

c++ - Soft (not : weak) references in C++ - Is it possible? 有实现吗?

c - 用 C 语言为 LC3 汇编器编写自定义分词器

java - Java如何从文本文件中提取数据

C++ 翻译单元

c++ - 有没有办法从 `std::function` 返回到指针?

ios - 使用 Cmake for iOS 查找 boost 框架