FileChannel в Java поддерживает запись из массива буферов в канал при записи записи с помощью int write(ByteBuffer[] src).
Однако он не поддерживает аналог метода записи со смещением write(ByteBuffer src, long position). Похоже, что нет способа выполнить запись по указанному смещению без блокировки канала, изменения позиции, записи в эту позицию, а затем разблокировки канала.
Похоже, что в конечном итоге java использует системный вызов writev для выполнения сбор пишет. Команда pwritev, по-видимому, делает именно то, что нужно и от нее ожидается.
Есть ли веская причина, по которой нет метода записи со смещением? Есть ли библиотеки, которые это реализуют?