From db36212d04156f775e7065c59ed69cd65a54b075 Mon Sep 17 00:00:00 2001 From: Abdellah El Morabit Date: Sun, 2 Feb 2025 22:15:10 +0100 Subject: trying to implement scandir --- a.out | Bin 33880 -> 0 bytes main.c | 44 +++++++++++++++++++++++++------------------- 2 files changed, 25 insertions(+), 19 deletions(-) delete mode 100755 a.out diff --git a/a.out b/a.out deleted file mode 100755 index 4a3359d..0000000 Binary files a/a.out and /dev/null differ diff --git a/main.c b/main.c index c0395e6..da1bd6c 100644 --- a/main.c +++ b/main.c @@ -11,11 +11,7 @@ /* BOOLEANS */ #define true 1 #define false 0 - -typedef struct -{ - int process_id; -} id; +#define _DEFAULT_SOURCE void exit_program(char *argv) { @@ -32,25 +28,27 @@ void get_pid_parent_process() void list_directories() { + struct dirent **namelist; + int n; + n = scandir(".", &namelist, NULL, alphasort); + if (n == -1) + { + perror("scandir"); + exit(EXIT_FAILURE); + } -} - - -char *save_variable(char* command, char *argv) -{ - char *variable = (char *)malloc(sizeof(char)); - char *input = readline(); - - if (strcmp(argv[0], "$") == 0) + while (n--) { - while(*argv != ("/0")) - { - - } + printf("%s\n", namelist[n]->d_name); + free(namelist[n]); } + free(namelist[n]); + exit(EXIT_SUCCESS); } + + void echo(char *command, char *argv) { if (strcmp(command, "echo") == 0) @@ -59,9 +57,17 @@ void echo(char *command, char *argv) } } -int main(int argc, char *argv[]) +int main(void) { + char *input; + readline(input); + + while(strcmp(input, "exit") != 0) + { + list_directories(); + } + exit_program(input); return 0; } -- cgit v1.2.3-70-g09d2