/**********************************************************************/ /* */ /* Systemnahe Software I WS 1999/2000 */ /* Listet alle Unterverzeichnisse des angegebenen Verzeichnisses auf */ /* */ /**********************************************************************/ #include #include #include #include int main(int argc, char **argv) { struct stat st; /* Platz fuer Stat-Infos */ struct dirent *entry; /* Resultat von readdir()*/ DIR *dp; /* Zeiger aufs Directory */ char buf[200]; /* Platz fuer den Pfad */ if (argc !=2) { printf("usage: %s directory\n", argv[0]); return -1; } if (!(dp=opendir(argv[1]))) { /* oeffnet angegebenes Dir */ fprintf(stderr, "cannot open Dir %s\n", argv[1]); return -1; } while (entry = readdir(dp)) /* ueber alle Dir-Eintraege */ { sprintf(buf, "%s/%s", argv[1], entry->d_name); /* kompletten Pfad basteln */ /*mit stat() Informationen ueber die einzelnen Dateien holen*/ if (stat(buf, &st) <0) /* keine Zugriffsrechte? */ { fprintf(stderr, "cannot stat %s\n", buf); } else /* Stat-Zugriff hat geklappt */ { fprintf(stdout, "%s\n", entry->d_name); } } closedir(dp); return 0; }