SCANDIR(3)

BEZEICHNUNG
scandir, alphasort - durchsucht ein Verzeichnis nach passenden Einträgen

ÜBERSICHT
#include <dirent.h>

int scandir(const char *dir, struct dirent ***namelist,
    int (*select)(const struct dirent *),
    int (*compar)(const struct dirent *, const struct dirent *));

int alphasort(const struct dirent *a, const struct dirent *b);

BESCHREIBUNG
Die scandir()-Funktion durchsucht das Verzeichnis dir und ruft für jeden Verzeichniseintrag select() auf. Die Einträge, bei denen select() einen Wert ungleich 0 zurückliefert werden in Strings gespeichert. Der Speicher wird dabei mit malloc() reserviert. Danach werden die Strings mit sort() sortiert wobei die Vergleichsroutine compar() benutzt wird. Am Schluss werden die Strings im Array namelist gespeichert, dessen Speicher ebenfalls mit malloc() reserviert wird.

Die alphasort()-Funktion kann als Vergleichsroutine für die scandir()-Funktion benutzt werden um die Verzeichniseinträge alphabetisch zu sortieren. Die Parameter sind die beiden Verzeichniseinträge a und b die verglichen werden sollen.

RÜCKGABEWERT
Die scandir()-Funktion liefert die Anzahl gelesener Verzeichniseinträge oder -1 im Fehlerfall zurück.

Die alphasort()-Funktion liefert eine Zahl kleiner 0 zurück wenn das erste Argument im Alphabet vor dem zweiten Argument kommt, genau 0 wenn beide gleich sind und eine Zahl größer 0 wenn das erste Argument im Alphabet nach dem zweiten Argument kommt.

FEHLER

ENOMEM
    Zu wenig Speicher um den Vorgang zu beenden.

KONFORM ZU
BSD 4.3

SIEHE AUCH
opendir(3), readdir(3), closedir(3), rewinddir(3), telldir(3), seekdir(3).