Python Glossary English

Python 3.7+Linuxosфункция

os.pwritev

os — позиционный ввод-вывод

Как pwrite, но пишет сразу из нескольких буферов (gather write) по заданной позиции. Доступно на Linux.

Синтаксис

os.pwritev(...)

Записывает несколько буферов по заданному смещению одним системным вызовом, не сдвигая общую позицию. Экономит склейку данных в один bytes перед записью. Как и другие функции записи, может записать не всё. Флаги вроде RWF_DSYNC позволяют сделать запись синхронной без отдельного fsync.

Примеры

import os
fd = os.open('pwritev-demo.bin', os.O_RDWR | os.O_CREAT | os.O_TRUNC)  # временный файл для опытов
parts = [b'HEADER', b'BODY']  # gather-запись: заголовок и тело лежат в разных буферах
print(os.pwritev(fd, parts, 0))  # → 10 — обе части ушли одним системным вызовом
print(os.pread(fd, 10, 0))  # → b'HEADERBODY' — буферы склеены подряд, без разделителей
print(os.lseek(fd, 0, os.SEEK_CUR))  # → 0 — pwritev пишет по смещению и не двигает позицию fd (в отличие от os.writev)

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности