refactor all stat functions in terms of fstatat

equivalent logic for fstat+O_PATH fallback and direct use of
stat/lstat syscalls where appropriate is kept, now in the fstatat
function. this change both improves functionality (now, fstatat forms
equivalent to fstat/lstat/stat will work even on kernels too old to
have the at functions) and localizes direct interfacing with the
kernel stat structure to one file.
This commit is contained in:
Rich Felker
2019-07-18 19:36:23 -04:00
parent 62a73d9649
commit 9493892021
4 changed files with 37 additions and 23 deletions
+1 -5
View File
@@ -4,11 +4,7 @@
int stat(const char *restrict path, struct stat *restrict buf)
{
#ifdef SYS_stat
return syscall(SYS_stat, path, buf);
#else
return syscall(SYS_fstatat, AT_FDCWD, path, buf, 0);
#endif
return fstatat(AT_FDCWD, path, buf, 0);
}
weak_alias(stat, stat64);