У меня есть файл. Мое приложение должно открыть его и защитить от записи, выполняемой другими приложениями в моей операционной системе.
Можно ли сделать такую вещь? Я попытался fcntl.flock (), но кажется, что эта блокировка работает только для моего приложения. Другие программы, такие как текстовые редакторы, могут записывать в файл без проблем.
Тестовый пример
#!/usr/bin/env python3
import time
import fcntl
with open('./somefile.txt', 'r') as f:
# accquire lock
fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB)
# some long running operation
# file should be protected from writes
# of other programs on this computer
time.sleep(20)
# release lock
fcntl.flock(f, fcntl.LOCK_UN)
Как заблокировать файл для каждого приложения в системе, кроме моего?