From: Franck Bui Date: Fri, 20 Jul 2018 07:05:38 +0000 (+0200) Subject: basic/stat-util: introduce is_dir_fd() X-Git-Tag: v240~864^2~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a12e4ade1b7634f7286f53d9ce2b3a12ab17826e;p=thirdparty%2Fsystemd.git basic/stat-util: introduce is_dir_fd() --- diff --git a/src/basic/stat-util.c b/src/basic/stat-util.c index 07154e25bb1..762777e94fb 100644 --- a/src/basic/stat-util.c +++ b/src/basic/stat-util.c @@ -45,6 +45,17 @@ int is_dir(const char* path, bool follow) { return !!S_ISDIR(st.st_mode); } +int is_dir_fd(int fd) { + struct stat st; + int r; + + r = fstat(fd, &st); + if (r < 0) + return -errno; + + return !!S_ISDIR(st.st_mode); +} + int is_device_node(const char *path) { struct stat info; diff --git a/src/basic/stat-util.h b/src/basic/stat-util.h index f8014ed30b0..1a725f1da04 100644 --- a/src/basic/stat-util.h +++ b/src/basic/stat-util.h @@ -12,6 +12,7 @@ int is_symlink(const char *path); int is_dir(const char *path, bool follow); +int is_dir_fd(int fd); int is_device_node(const char *path); int dir_is_empty(const char *path);