Python Glossary English

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

os.lockf

os — блокировки

Применяет или снимает POSIX-блокировку на область файла (по дескриптору). Доступно на Unix.

Синтаксис

os.lockf(...)

Блокировка рекомендательная: она мешает только тем, кто тоже вызывает lockf, а обычное чтение и запись проходят. Привязана к процессу и снимается при закрытии любого дескриптора этого файла в процессе — даже другого. Для блокировок между процессами в Python чаще используют fcntl.flock, а переносимого решения в стандартной библиотеке нет.

Примеры

import os
fd = os.open('counter.dat', os.O_RDWR | os.O_CREAT)   # → ? только Unix: дескриптор файла, который будем блокировать
os.lockf(fd, os.F_LOCK, 0)   # → ? только Unix: захватывает файл целиком (len=0), ждёт, пока его освободит другой процесс
os.lockf(fd, os.F_ULOCK, 0)   # → ? только Unix: снимает блокировку, ничего не возвращает
os.lockf(fd, os.F_TLOCK, 100)   # → ? только Unix: пробует занять 100 байт от текущей позиции без ожидания; занято другим процессом — BlockingIOError
os.close(fd)   # → ? только Unix: закрытие дескриптора тоже снимает все блокировки процесса на этом файле

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