test if a file is locked?
дамјан г.
mk at net.mail.penguinista
Mon Dec 22 06:42:46 EST 2003
> I can lock a file using the following snippet:
>
> ---
> import fcntl
>
> f=open('flock.txt','w')
> fcntl.lockf(f.fileno(),fcntl.LOCK_EX)
> ---
>
> If some other script tries to open 'flock.txt', it'll wait until the
> file is unlocked/closed.
This is not true on my system (Linux-2.4.23/glibc-2.3.2), after locking the
file Ican still open it with another script or program (like "cat").
The other script blocks only when I try to lock the file again.
> My question is, I'd like to tell a script to quit *immediately* if it
> cannot open the file, or, if it knows the file is locked.
try this:
fcntl.lockf(f.fileno(),fcntl.LOCK_EX|fcntl.LOCK_NB)
it will throw an exception if the file is locked:
IOError: [Errno 11] Resource temporarily unavailable
--
Дамјан (jabberID:damjan at bagra.net.mk)
Intel: where Quality is job number 0.9998782345!
More information about the Python-list
mailing list