python flock()是如何工作的?

2024-05-20 11:11:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

import os, fcntl

f = open('./testfile.t', 'wb')
f.write(os.urandom(64))

fcntl.flock(f.fileno(), fcntl.LOCK_EX)
print 'Locked'

try:
    f2 = open('./testfile.t', 'wb')
except IOError as err:
    print err.errno
    print err

其思想是第二个open应该返回一个错误,因为文件仍然被锁定。 问题是它没有。 此外,如果我试图获取f2.fileno()上的锁,则此代码将挂起,而不是引发异常。 我做错了什么?在


Tags: 代码importlockosopenurandomwritef2