From 642b5fb0007b64c77d186fcb018d571152ee1d47 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Mon, 14 Aug 2023 18:51:07 +0200 Subject: reorganization: first steps --- src/user/lib/dirent.c | 55 --------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 src/user/lib/dirent.c (limited to 'src/user/lib/dirent.c') diff --git a/src/user/lib/dirent.c b/src/user/lib/dirent.c deleted file mode 100644 index c2d1b9c..0000000 --- a/src/user/lib/dirent.c +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include -#include - -DIR *opendir(const char *name) { - FILE *fp = NULL; - DIR *dir = NULL; - fp = fopen(name, "r"); - if (!fp) { - goto err; - } - dir = calloc(1, sizeof *dir); - if (!dir) { - goto err; - } - dir->fp = fp; - return dir; -err: - if (fp) fclose(fp); - free(dir); - return NULL; -} - -int closedir(DIR *dir) { - fclose(dir->fp); - free(dir); - return 0; -} - -struct dirent *readdir(DIR *dir) { - int i = 0; - char *buf = dir->dent.d_name; - for (;;) { - int c = fgetc(dir->fp); - if (c == EOF) { - if (i == 0) return NULL; - else break; - } - if (c == '\0') { - break; - } - if (i == sizeof(dir->dent.d_name)-1) { - /* overflow */ - for (;;) { - c = fgetc(dir->fp); - if (c == EOF || c == '\0') break; - } - return errno = ENAMETOOLONG, NULL; - } - buf[i++] = c; - } - buf[i] = '\0'; - return &dir->dent; -} -- cgit v1.2.3