Skip to main content
 首页 » 编程设计

python之fcntl.lockf() 以何种方式锁定文件

2025年05月04日22bonelee

我目前正在尝试通过 python 锁定一个文件,这样其他进程甚至无法读取它。

到目前为止,我正在通过 python 解释器测试 fcntl.lockf() 的行为:

>>> file = open("/path/to/file", "w") 
>>> fcntl.lockf(file.fileno(), fcntl.LOCK_EX | fcntl_LOCK_READ) 

我已经尝试过这个和 fcntl.lockf 的其他几个变体,但我仍然能够第二次打开文件并获得他的 fd。 我能够读取它并写入它。

我是不是遗漏了什么或者这根本不应该为其他进程锁定文件?还有其他方法吗?

请您参考如下方法:

它是一个咨询锁,只有合作进程才会被阻止。参见 this discussion关于如何放置强制锁。