Man sollte folgende Header-Dateien einbinden: #include #include #include #include #include #include #include #include Das Durchlaufen der einzelnen Eintraege eines Verzeichnisses ("dir_name") erfolgt durch mehrmaliges Aufrufen von "readdir(dir_name)". Bei jedem Aufruf von "readdir(dir_name)" wird ein Zeiger auf eine Struktur "struct dirent" zurueckgeliefert. Das Element "d_name" in der Struktur "struct dirent" ist der Dateiname im aktuellen Verzeichnis "dir_name". Fuer die Funkion "stat" wird jedoch ein kompletter Pfad benoetigt, der mit den folgenden Befehlen erzeugt werden kann: char filename[256]; strcpy( filename, dir_name ); strcat( filename, "/" ); strcat( filename, entry->d_name ); Beispiel: dir_name = /home/user entry->d_name = a.out filename = /home/user/a.out Mit "stat" laesst sich herausfinden, ob es sich bei einem Dateinamen um ein Verzeichnis oder eine regulaere Datei handelt: struct stat attribut; //Die Attribute der Datei holen if( stat(filename, &attribut) == -1 ) { perror ( "stat" ); exit(2); } //Ist es ein Verzeichnis? => Passendes Flag fuer ??? setzen if( attribut.st_mode & ??? ) { ... } //Ist es eine Datei?=> Passendes Flag fuer ??? setzen else if(attribut.st_mode & ???) { .... }