Python 3.3+Linux · macOSosfunction
os.lockf
os — locks
Apply or release a POSIX lock on a file region (by fd). Availability: Unix.
Syntax
os.lockf(...)
The lock is advisory: it only stops others who also call lockf, while plain reads and writes go through. It belongs to the process and is released when any descriptor for that file is closed in the process — even a different one. For inter-process locking Python code more often uses fcntl.flock, and the standard library has no portable solution.
Examples
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: закрытие дескриптора тоже снимает все блокировки процесса на этом файле
Open in the full glossarydocs.python.orgReport an inaccuracy