Python Glossary English

Python 3.3+Linux · macOSosфункция

os.writev

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

Пишет в дескриптор сразу из нескольких буферов (gather write). Доступно на Unix.

Синтаксис

os.writev(...)

Записывает несколько байтовых объектов одним системным вызовом — без предварительной склейки b''.join и без нескольких отдельных write. Это сокращает число переключений в ядро при отправке заголовка и тела. Может записать не всё, и тогда остаток, возможно с середины одного из буферов, нужно дописать самостоятельно.

Примеры

import os
fd = os.open('writev-demo.txt', os.O_RDWR | os.O_CREAT | os.O_TRUNC)  # временный файл для опытов
print(os.writev(fd, [b'name;', b'age\n']))  # → 9 — обе части записаны одним системным вызовом
print(os.writev(fd, [b'Ann;', b'20\n']))  # → 7 — writev пишет с текущей позиции, дописывая в конец
print(os.pread(fd, 16, 0))  # → b'name;age\nAnn;20\n'
print(os.writev(fd, []))  # → 0 — пустой список буферов ничего не пишет

См. также

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

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