https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106308
Bug ID: 106308 Summary: Consider using statx(2) for std::filesystem Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- Target: *-*-linux* We don't need all the info that stat(2) provides. Whenever we want to create a filesystem::file_status we only need st_mode. This would speed up many operations that use filesystem::file_status or filesystem::file_type. filesystem::file_size only uses st_mode and st_size filesystem::read_symlink only uses st_mode and st_size filesystem::copy and filesystem::copy_file only use st_mode, st_dev, st_ino, and st_size. filesystem::equivalent only uses st_mode, st_dev, st_ino. filesystem::last_write_time only uses st_mtim. We never care about atim, ctim, uid, nlink, rdev, blocks, or blksize (although maybe we should use blksize for filesystem::copy_file). Fetching those fields for files on remote filesystems is wasteful.