Provided by: manpages-de-dev_1.4-1_all bug

BEZEICHNUNG

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

ÜBERSICHT

       #include <dirent.h>

       int scandir(const char *dirp, struct dirent ***namelist,
              int (*filter)(const struct dirent *),
              int (*compar)(const struct dirent **, const struct dirent **));

       int alphasort(const void *a, const void *b);

       int versionsort(const void *a, const void *b);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       scandir(), alphasort(): _BSD_SOURCE || _SVID_SOURCE
       versionsort(): _GNU_SOURCE

BESCHREIBUNG

       Die   Funktion   scandir()   durchsucht   das   Verzeichnis   dirp   und  ruft  für  jeden
       Verzeichniseintrag filter()  auf.  Einträge,  für  die  filter()  einen  Wert  ungleich  0
       zurückgibt,  werden  in  Zeichenketten gespeichert, derenSpeicher mit malloc(3) reserviert
       wird. Danach werden die Zeichenkettenmit qsort(3) unter Verwendung der  Vergleichsfunktion
       compar()  sortiert und im Feld namelist gesammelt, dessen Speicher ebenfalls mit malloc(3)
       reserviert wird. Falls filter gleich NULL ist, werden alle Einträge ausgewählt.

       Die Funktionen alphasort() und versionsort() können als  die  Vergleichsfunktion  compar()
       benutzt  werden.  Die  erste  sortiert  die  Verzeichniseinträge  mittels  strcoll(3), die
       letztere strverscmp(3) auf den Zeichenketten (*a)->d_name and (*b)->d_name.

RÜCKGABEWERT

       Die Funktion  scandir()  liefert  die  Anzahl  ausgewählter  Verzeichniseinträge  oder  im
       Fehlerfall -1 zurück, wobei errno gesetzt wird, um die Ursache des Fehlers anzuzeigen.

       Die  Funktionen  alphasort()  und  versionsort() liefern eine Zahl kleiner als Null, Null,
       oder größer als Null zurück, wenn das erste Argument entsprechend als kleiner, gleich oder
       größer als das zweite Argument angesehen wird.

FEHLER

       ENOENT Der Pfad in dirp existiert nicht.

       ENOMEM Der Speicher reicht nicht aus, um den Vorgang zu beenden.

       ENOTDIR
              Der Pfad in dirp ist kein Verzeichnis.

VERSIONEN

       versionsort() wurde der Glibc in Version 2.1 hinzugefügt.

KONFORM ZU

       alphasort()  und  scandir() werden in POSIX.1-2008 beschrieben und sind weithin verfügbar.
       versionsort() ist eine GNU-Erweiterung.

       Die Funktion scandir() und alphasort() stammen aus 4.3BSD und waren unter Linux seit Libc4
       verfügbar. Libc4 und Libc5 verwenden den genaueren Prototyp

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

       aber Glibc 2.0 kehrt zum ungenauen BSD-Prototyp zurück.

       Die Funktion  versionsort() ist eine GNU-Erweiterung und seit Glibc 2.1 verfügbar.

       Seit Glibc 2.1 verwendet alphasort()  strcoll(3); früher nutzte sie strcmp(3).

BEISPIEL

       #define _SVID_SOURCE
       /* Ausgabe der Dateien im aktuellen Verzeichnis in
          umgekehrter Reihenfolge */
       #include <dirent.h>

       int
       main(void)
       {
           struct dirent **Namensliste;
           int n;

           n = scandir(".", &Namensliste, NULL, alphasort);
           if (n < 0)
               perror("scandir");
           else {
               while (n--) {
                   printf("%s\n", Namensliste[n]->d_name);
                   free(Namensliste[n]);
               }
               free(Namensliste);
           }
       }

SIEHE AUCH

       closedir(3),  fnmatch(3),  opendir(3), readdir(3), rewinddir(3), scandirat(3), seekdir(3),
       strcmp(3), strcoll(3), strverscmp(3), telldir(3)

KOLOPHON

       This page is part of release 3.54 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die   deutsche   Übersetzung   dieser   Handbuchseite   wurde    von    Markus    Kaufmann
       <markus.kaufmann@gmx.de> und Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die GNU General Public License
       Version  3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE   HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.