diff options
Diffstat (limited to 'ls.c')
-rw-r--r-- | ls.c | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -0,0 +1,30 @@ +#include <dirent.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + + +int ls(const char * path) +{ + DIR * dir; + if (NULL == (dir = opendir(path))) { + perror(path); + return 1; + } + struct dirent * entry; + while (NULL != (entry = readdir(dir))) + printf("%s\n", entry->d_name); + closedir(dir); + return 0; +} + + +int main(int argc, char * argv[]) +{ + int res = 0; + if (argc == 1) + res |= ls("."); + for (int i = 1; i < argc; ++i) + res |= ls(argv[i]); + return res; +} |