X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Futil.c;h=7664df59d06359150f0a5c1a82d13b16800038ed;hp=a8ea4a97ab745dbc3ea4400176e10d9bae29f4e9;hb=01f78473b104d28db0fa813414092bc6358ae521;hpb=871d7de47c13ee6cd78b8eefdf9128be3c740ac0 diff --git a/src/util.c b/src/util.c index a8ea4a97a..7664df59d 100644 --- a/src/util.c +++ b/src/util.c @@ -2092,6 +2092,35 @@ bool is_device_path(const char *path) { path_startswith(path, "/sys/"); } +int dir_is_empty(const char *path) { + DIR *d; + int r; + struct dirent buf, *de; + + if (!(d = opendir(path))) + return -errno; + + for (;;) { + if ((r = readdir_r(d, &buf, &de)) > 0) { + r = -r; + break; + } + + if (!de) { + r = 1; + break; + } + + if (!ignore_file(de->d_name)) { + r = 0; + break; + } + } + + closedir(d); + return r; +} + static const char *const ioprio_class_table[] = { [IOPRIO_CLASS_NONE] = "none", [IOPRIO_CLASS_RT] = "realtime",