星期三, 一月 31, 2007

fcntl for Python

今天那里学到的,做笔记如下:

A进程:
from fcntl import *
f=open("/tmp/1.txt","w")
flock(f.fileno(),LOCK_EX|LOCK_NB) #只写LOCK_EX,是阻塞的方式锁文件

B进程:
from fcntl import *
f=open("/tmp/1.txt","w")
flock(f.fileno(),LOCK_EX|LOCK_NB)

引起如下异常,就可以在异常处理中做额外的处理了
IOError: [Errno 35] Resource temporarily unavailable

文件解锁:
flock(f.fileno(),LOCK_UN)

另:
在ASPN找到的,跨win32和unix的文件加锁示例:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65203

标签: , , , , ,

0 Comments:

发表评论

<< Home