#include #include #include #include int main(int argc, char *argv[]) { DIR *d; struct dirent *dir; int hidden = 1; int c; while ((c = getopt(argc, argv, "a")) != -1) { switch (c) { case 'a': hidden = 0; break; } } if (argc < 2) { fprintf(stderr, "No arguments provided.\n"); return 1; } for (int i = 1; i < argc; i++) { while (!strncmp(argv[i], "-", 1) || !opendir(argv[i])) i++; d = opendir(argv[i]); 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); } }