Запишите все предоставленные данные в указанном смещение перед возвращением.
template<
typename SyncRandomAccessWriteDevice,
typename ConstBufferSequence>
std::size_t write_at(
SyncRandomAccessWriteDevice & d,
uint64_t offset,
const ConstBufferSequence & buffers,
boost::system::error_code & ec);
Эта функция используется для записи определенного количества байт данных в устройство случайного доступа при заданном смещение. Звонок будет блокироваться до тех пор, пока не будет выполнено одно из следующих условий:
- Все данные в предоставленных буферах были записаны. То есть переданные байты равны сумме буферных размеров.
- Произошла ошибка.
Эта операция реализована с точки зрения нуля или более вызовов функции записи_some_at устройства.
- d
Устройство, на которое должны быть записаны данные. Тип должен поддерживать концепцию SyncRandomAccessWriteDevice.
- offset
Смещение, при котором будут записаны данные.
- buffers
Один или несколько буферов, содержащих данные, подлежащие записи. Сумма размеров буфера указывает на максимальное количество байтов для записи на устройство.
- ec
Установить, какая ошибка произошла, если таковая имеется.
Количество переданных байтов.
Для записи одного буфера данных используйте функцию буфер
следующим образом:
boost::asio::write_at(d, 42,
boost::asio::buffer(data, size), ec);
См. документацию buffer
для информации о написании нескольких буферов за один раз, а также о том, как использовать ее с массивами, нарастить::array или std::vector.
Эта перегрузка эквивалентна вызову:
boost::asio::write_at(
d, offset, buffers,
boost::asio::transfer_all(), ec);