我想使用Python在Unix上检测文件是否被锁定。如果删除文件可以帮助检测文件是否被锁定,那么删除文件也是可以的。
文件可能最初被另一个进程以独占方式打开。文档似乎表明,即使文件被锁定,os.unlink也不一定会返回错误。
有什么想法吗?
文件可能最初被另一个进程以独占方式打开。文档似乎表明,即使文件被锁定,os.unlink也不一定会返回错误。
有什么想法吗?
fcntl.lockf(fileobj.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
如果文件已经被锁定,这将引发IOError;如果没有,您可以调用
fcntl.lockf(fileobj.fileno(), fcntl.LOCK_UN)
来解锁它。我试图在Mac上锁定一个文件,然后在另一个终端中删除同一文件。结果它允许这个文件被删除了。
lock_file_path = "/tmp/lock.file"
fd = open(lock_file_path,"w")
fcntl.flock(fd.fileno(),LOCK_EX)
while True:
print("Locked")