Single Instance of app
tim.one at home.com
Wed Aug 29 07:00:35 CEST 2001
> I'm not sure exactly what's meant by "atomic lock on a file",
> but you can study the std tempfile.py module for the excruciating dance
> needed to create temp files safely.
Hey, what else are Tims good for <wink>?
> I just meant 'atomic' as far as avoiding the race condition.
Cool. You have primarily the O_EXCL flag to os.open() to thank for that.
> The tempfile module uses the ((fd)?open|close) functions in the os
> module. I would assume these are closer to the system calls like
> fopen() and fdopen() than is the built-in open()?
The problem is that O_EXCL isn't available to (C) fopen, so the low-level
open has to be used. Then the file is unlinked, both so that it will go
away when the descriptor is closed, and so that nobody can find it *by* name
via directory searches. Then we're left with a raw file handle, but Python
file objects wrap streams; fdopen is used just to wrap a stream around the
More information about the Python-list