diff options
Diffstat (limited to '')
-rw-r--r-- | ls.c | 34 |
1 files changed, 34 insertions, 0 deletions
@@ -0,0 +1,34 @@ +#include <dirent.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int main(int argc, char *argv[]) +{ + DIR *d; + char *dirs; + struct dirent *dir; + int hidden = 1; + int c; + + while ((c = getopt(argc, argv, "a")) != -1) { + switch (c) { + case 'a': hidden = 0; break; + } + } + + if (argc > 0) { + for (int i = 1; i < argc; i++) { + dirs = argv[i]; + if ((d = opendir(dirs))) { + while ((dir = readdir(d)) != NULL) { + if (strncmp(dir->d_name, ".", 1) != 0 && hidden) /* dont print hidden files */ + printf("%s\n", dir->d_name); + else if (!hidden) + printf("%s\n", dir->d_name); + } + closedir(d); + } + } + } +} |