X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/8e25af7dc33bdcc0df6f4f173da7a2f883141d70..6820631175868c277effa7cc05f9cb3197b72654:/num_files.c?ds=inline diff --git a/num_files.c b/num_files.c new file mode 100644 index 0000000..505e24a --- /dev/null +++ b/num_files.c @@ -0,0 +1,29 @@ +#include +#include +#include +#include + +#include "util.h" + +const char * +num_files(const char *dir) +{ + struct dirent *dp; + DIR *fd; + int num = 0; + + if ((fd = opendir(dir)) == NULL) { + warn("Failed to get number of files in directory %s", dir); + return NULL; + } + + while ((dp = readdir(fd)) != NULL) { + if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) + continue; /* skip self and parent */ + num++; + } + + closedir(fd); + + return bprintf("%d", num); +}