在返回之前,在指定的偏移量写入一定量的数据。
template< typename SyncRandomAccessWriteDevice, typename ConstBufferSequence, typename CompletionCondition> std::size_t write_at( SyncRandomAccessWriteDevice & d, uint64_t offset, const ConstBufferSequence & buffers, CompletionCondition completion_condition, boost::system::error_code & ec, constraint_t< is_completion_condition< CompletionCondition >::value > = 0);
此函数用于在指定的偏移量将一定数量的数据字节写入随机访问设备。调用将阻塞,直到以下条件之一为真
此操作通过零次或多次调用设备的 write_some_at 函数来实现。
要向其写入数据的设备。 该类型必须支持 SyncRandomAccessWriteDevice 概念。
将写入数据的偏移量。
包含要写入数据的一个或多个缓冲区。 缓冲区大小的总和表示要写入设备的最大字节数。
要调用的函数对象,以确定写入操作是否完成。 函数对象的签名必须是
std::size_t completion_condition( // Result of latest write_some_at operation. const boost::system::error_code& error, // Number of bytes transferred so far. std::size_t bytes_transferred );
返回值为 0 表示写入操作已完成。 非零返回值表示在下次调用设备的 write_some_at 函数时要写入的最大字节数。
设置为指示发生了什么错误(如果有)。
写入的字节数。 如果发生错误,则返回错误发生前成功传输的字节总数。