Boost C++ 库

...世界上最受推崇和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

面向缓冲区的异步随机访问写入设备要求

在下表中,a 表示一个异步写入流对象,o 表示一个类型为 boost::uint64_t 的偏移量,cb 表示一个满足常量缓冲区序列要求的对象,并且 h 表示一个满足 写入处理程序 要求的对象。

表 5. 面向缓冲区的异步随机访问写入设备要求

操作

类型

语义,前置/后置条件

a.get_executor()

满足执行器要求的类型。

返回关联的 I/O 执行器。

a.async_write_some_at(o, cb, h);

void

启动一个异步操作,以将一个或多个字节的数据写入到设备 a 的偏移量 o 处。该操作通过 I/O 执行器 a.get_executor() 执行,并按照异步操作要求运行。

常量缓冲区序列 cb 指定数据写入位置的内存。 async_write_some_at 操作应始终完全写入序列中的一个缓冲区,然后再继续到下一个。

实现应维护 cb 的一个或多个副本,直到写入操作不再需要访问序列中缓冲区指定的内存。程序必须确保内存保持有效直到

cb 的最后一个副本被销毁,或

— 异步写入操作的处理程序被调用,

以先发生者为准。

如果序列 cb 中所有缓冲区的总大小为 0,异步写入操作应立即完成,并将 0 作为参数传递给处理程序,该处理程序指定写入的字节数。



PrevUpHomeNext