Hyppää sisältöön

Ei vielä käännetty

Tätä sivua ei ole vielä käännetty suomeksi, joten se näytetään englanniksi. Auta kääntämään

fcntl Module

The fcntl module provides access to file control operations on Unix, including file locking and other low-level file I/O control.

Complexity Reference

Operation Time Space Notes
flock() O(1) O(1) Acquire lock; blocks if contended (without LOCK_NB)
fcntl() O(1) O(1) File control operation
ioctl() O(1) O(1) Device-specific I/O control
lockf() O(1) O(1) POSIX record locking

File Locking and Control

File Locking

import fcntl

# Open file
with open('data.txt', 'w') as f:
    # Acquire lock - O(1)
    fcntl.flock(f.fileno(), fcntl.LOCK_EX)

    try:
        # Write while locked
        f.write('Protected data')
    finally:
        # Release lock - O(1)
        fcntl.flock(f.fileno(), fcntl.LOCK_UN)

Non-blocking Lock

import fcntl

with open('file.txt', 'r') as f:
    try:
        # Non-blocking exclusive lock - O(1)
        fcntl.flock(f.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
        print("Lock acquired")
    except BlockingIOError:
        print("File is locked by another process")