From 7de7ada912e81e4eedab3a1e94992b4ab778a669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Wed, 21 Nov 2007 13:18:16 +0100 Subject: - Added readdir test (to recursivly search directories) --- src/readdir_test.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/readdir_test.c diff --git a/src/readdir_test.c b/src/readdir_test.c new file mode 100644 index 0000000..0cca325 --- /dev/null +++ b/src/readdir_test.c @@ -0,0 +1,52 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ + +#include +#include +#include +#include +#include + +extern int errno; + +void print_directory (char *path, int level) +{ + DIR *dir = opendir (path); + int i; + + if (dir == NULL) { + for (i=0; id_name, "." ) == 0 || + strcmp (de->d_name, "..") == 0) + continue; + + for (i=0; id_name); + + if (de->d_type == 4) { /* ToDo: have to use lstat or something */ + char subdir[strlen(path) + strlen(de->d_name) + 1]; + strcpy (subdir, path); + strcpy (subdir+strlen(path), "/"); + strcpy (subdir+strlen(path)+1, de->d_name); + + print_directory (subdir, level+1); + } + } +} + +int main (int argc, char **argv) +{ + if (argc != 2) + return -1; + + print_directory (argv[1], 0); + return 0; +} + -- cgit v1.2.3