尝试在指定的偏移量读取一定量的数据,然后返回。
template< typename SyncRandomAccessReadDevice, typename MutableBufferSequence> std::size_t read_at( SyncRandomAccessReadDevice & d, uint64_t offset, const MutableBufferSequence & buffers);
此函数用于在指定偏移量从随机访问设备读取一定数量的字节。调用将阻塞,直到以下条件之一成立:
此操作通过零次或多次调用设备的 read_some_at 函数来实现。
要从中读取数据的设备。该类型必须支持 SyncRandomAccessReadDevice 概念。
将读取数据的偏移量。
一个或多个将要读取数据的缓冲区。缓冲区大小的总和表示从设备读取的最大字节数。
传输的字节数。
失败时抛出。
要将数据读取到单个缓冲区中,请使用 buffer
函数,如下所示:
boost::asio::read_at(d, 42, boost::asio::buffer(data, size));
有关一次读取多个缓冲区的信息,以及如何将其与数组、boost::array 或 std::vector 一起使用,请参阅 buffer
文档。
此重载等同于调用
boost::asio::read_at( d, 42, buffers, boost::asio::transfer_all());