From 6820631175868c277effa7cc05f9cb3197b72654 Mon Sep 17 00:00:00 2001 From: Aaron Marcher Date: Sun, 17 Sep 2017 16:18:17 +0200 Subject: Split into multiple files For multiple reasons the program is now split: - Make future porting to OpenBSD easier - Assign header includes to individiual functions - Make future program extensions easier - Recompile only changed parts --- num_files.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 num_files.c (limited to 'num_files.c') 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); +} -- cgit v1.2.3