Single Instance of app

Tim Hammerquist tim at
Wed Aug 29 23:15:47 CEST 2001

Me parece que Tim Peters < at> dijo:
> [Tim Peters]
> > I'm not sure exactly what's meant by "atomic lock on a file",
> > but you can study the std module for the excruciating dance
> > needed to create temp files safely.
> [Tim Hammerquist]
> > Thanks!
> 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 to thank for that.

That's exactly what I was looking for.

> > 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()?
>            Python   C
> -----------------   -------
>   fopen
> __builtin__.close   fclose
>    open
>          os.close   close
>         os.fdopen   fdopen
> 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
> handle.

Ah. Thanks for the excellent explanation. Now I can avoid a few mistakes
that would've been very embarrassing. <wink>

(Another) Tim
Abel had been dead for a couple of hours now.
But he was starting to feel better.
    -- Narrator, The Sandman

More information about the Python-list mailing list