[issue25996] Add support of file descriptor in os.scandir()

STINNER Victor report at bugs.python.org
Mon Mar 6 04:21:26 EST 2017


STINNER Victor added the comment:

> I'm wondering is it possible to implement this feature on Windows?

On Windows, scandir() is implemented with FindFirstFile() which takes strings. This function creates a handle which should then be passed to FindNextFile(). There is no similar function taking a directory handle, so it's not possible to implement os.scandir(fd) on Windows.

It seems like the gnulib emulates fdopendir() on Windows, and its documentation contains warnings:
https://www.gnu.org/software/gnulib/manual/html_node/fdopendir.html
"But the replacement function is not safe to be used in libraries and is not multithread-safe. Also, the replacement does not guarantee that ‘dirfd(fdopendir(n))==n’ (dirfd might fail, or return a different file descriptor than n)."

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue25996>
_______________________________________


More information about the Python-bugs-list mailing list