diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-27 18:37:46 +0530 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-27 18:37:46 +0530 |
commit | fc6632146b0d46e63e5e14b74a311ef991f7fb61 (patch) | |
tree | d326aa70cbf4b1c60869ccc919ff91ad020d0315 /src/filehandler.c | |
parent | 119012f284233587f6622669da2b76da7fd073e2 (diff) |
filehandler: implement enumfilesindir()
Diffstat (limited to 'src/filehandler.c')
-rw-r--r-- | src/filehandler.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/filehandler.c b/src/filehandler.c index 154e2f3..fb1cedb 100644 --- a/src/filehandler.c +++ b/src/filehandler.c @@ -1,6 +1,12 @@ +#define _GNU_SOURCE + +#include <dirent.h> #include <filehandler.h> +#include <list.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> +#include <util.h> char * fcontent(FILE *f, unsigned int size) @@ -26,3 +32,23 @@ fsize(FILE *f) return s + 1; } + +list_t * +enumfilesindir(char *path) +{ + DIR *d; + struct dirent *dir; + + d = opendir(path); + if (!d) + return NULL; + + list_t *l = list_create(sizeof(ptr_wrapper_t *)); + + while ((dir = readdir(d)) != NULL) + if (dir->d_type == DT_REG) + list_add(l, wrap_ptr(strdup(dir->d_name))); + + closedir(d); + return l; +} |