[Python-Dev] Issue 11406: adding os.scandir(), a directory iterator returning stat-like info

Christian Heimes christian at python.org
Fri May 10 15:46:21 CEST 2013


Am 10.05.2013 14:16, schrieb Antoine Pitrou:
> But what if some systems return more than the file type and less than a
> full stat result? The general problem is POSIX's terrible inertia.
> I feel that a stat result with some None fields would be an acceptable
> compromise here.

POSIX only defines the d_ino and d_name members of struct dirent. Linux,
BSD and probably some other platforms also happen to provide d_type. The
other members of struct dirent (d_reclen, d_namlen) aren't useful in
Python space by themselves.

d_type and st_mode aren't compatible in any way. As you know st_mode
also contains POSIX permission information. The file type is encoded
with a different set of bits, too. Future file types aren't mapped to
S_IF* constants for st_mode.

For d_ino you also need the device number from the directory because the
inode is only unique within a device.

I don't really see how to map strut dirent to struct stat on POSIX.

Christian


More information about the Python-Dev mailing list