From fce48bb669691b6d3690b032f7a88e22c6f5614a Mon Sep 17 00:00:00 2001 From: "@syxhe" Date: Tue, 15 Apr 2025 17:22:41 -0500 Subject: Make some progress on scanning code --- src/main.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index fc1044a..cacbc4f 100644 --- a/src/main.c +++ b/src/main.c @@ -1,3 +1,5 @@ +#define _GNU_SOURCE + #include "shared.h" #include "arena.h" #include "encryption.h" @@ -9,8 +11,37 @@ #include #include + + +#include +int selector(const struct dirent *ent) { + // non-zero value includes a file, zero value excludes it + if(strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) + return 0; + + return 1; +} + int main() { - error(1, ENOTSUP, "No main file lol"); + // error(1, ENOTSUP, "No main file lol"); + + // Sample code on scanning the file system + + struct dirent **namelist = NULL; + int numentries = scandir(".", &namelist, selector, alphasort); + if(numentries < 0) + error(1, errno, "Ran into error scanning dir"); + + dlinkedlist *ll = dlinkedlist_init(); + for(int i = 0; i < numentries; i++) { + if(dlinkedlist_append(ll, (void *)namelist[i], free) != 0) + error(1, errno, "Could not add file entry to linked list"); + + free(namelist[i]); + } + free(namelist); + + dlinkedlist_free(&ll); return 0; } \ No newline at end of file -- cgit v1.2.3