Setting an exclusive lock on a file

Diez B. Roggisch deets at nospam.web.de
Sun Mar 29 08:59:28 EDT 2009


Eugene Perederey schrieb:
> Hi all,
> I want to set an exclusive lock on a file so other processes wouldn't
> be able to write to it.
> So I write
> 
> import fcntl
> fd=open('myfile','w')
> fcntl.lockf(fd, fcntl.LOCK_EX)
> fd.write('some bytes')
> fd.close()
> 
> But it turns out that my script doesn't write anything to file whereas
> other processes do. What's wrong in my code?

Sorry, my other answer wasn't complete.

The "problem" with file-locking is that it's AFAIK cooperative. Just 
because *you* lock a file doesn't mean anybody else is stopped from 
using it.

I'm not sure if there is something else to overcome this.

Diez



More information about the Python-list mailing list