我想使用LOCK_EX来阻止其他进程修改正在修改的文件。
流程A:
from fcntl import flock, LOCK_EX, LOCK_NB
from time import sleep
f=open("tmp.txt", "w")
flock(f.fileno(), LOCK_EX|LOCK_NB)
f.write("xxxx")
f.flush()
sleep(20)
f.close()
A开始后5秒,进程B:
f=open("tmp.txt", "w")
f.close()
过程B清空“tmp.txt”... 进程B中没有引发IOError。 如何防止使用独占访问的2个进程修改“tmp.txt”?
注意:“无辜”进程B不使用flock(),只有fopen()才能创建新文件。如果其他人可以修改文件,对文件使用独占锁是什么用途?当然,如果B也使用flock(),它会引发IOError,但如果不是???