Python Glossary English

все Python 3Linuxosфункция

os.fdatasync

os — синхронизация

Как fsync, но синхронизирует только данные, без части метаданных. Доступно на Unix.

Синтаксис

os.fdatasync(...)

Быстрее fsync, потому что не ждёт записи метаданных, не нужных для чтения данных, — например времени изменения. Размер файла при этом сохраняется. Нет на macOS; переносимый код использует fsync, а там, где fdatasync нужна ради скорости, проверяют hasattr(os, 'fdatasync').

Примеры

import os
fd = os.open('data.log', os.O_WRONLY | os.O_CREAT)   # → ? дескриптор открытого файла, например 3
print(os.write(fd, b'payload\n'))   # → 8
os.fdatasync(fd)   # → ? только Unix: None; данные гарантированно на диске, метаданные вроде времени изменения могут остаться в кеше
os.fsync(fd)   # → ? None; в отличие от fdatasync сбрасывает и метаданные — надёжнее, но дороже
os.fdatasync(999)   # → OSError: [Errno 9] Bad file descriptor — 999 не открытый дескриптор

См. также

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

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