Low level file descriptors and high-level Python files

Cameron Simpson cs at zip.com.au
Wed Sep 2 04:08:03 CEST 2015


On 02Sep2015 08:01, Cameron Simpson <cs at zip.com.au> wrote:
>One circumstance where you might use fdopen and _not_ want .close to close the underlying service is when you're handed a file descriptor over which you're supposed to perform some I/O, and the I/O library functions use high level files. In that case you might want code like this:
>
> fd2 = os.dup(fd)
> fp = open(fd2, 'a+b') # or whatever mode
> ... do stuff, perhaps passing fp to a library function ...
> fp.close()
>
>fd2 is not closed, but fd is still open for further use.

Um, "fd2 _is_ closed". Whoops.

Cheers,
Cameron Simpson <cs at zip.com.au>

Freedom is the right to be wrong, not the right to do wrong.
- John G. Riefenbaker


More information about the Python-list mailing list