Provided by: manpages-de-dev_4.13-4_all bug

BEZEICHNUNG

       qsort, qsort_r - ein Feld sortieren

ÜBERSICHT

       #include <stdlib.h>

       void qsort(void *basis, size_t nmemb, size_t groesse,
                  int (*vergleich)(const void *, const void *));

       void qsort_r(void *basis, size_t nmemb, size_t groesse,
                  int (*vergleich)(const void *, const void *, void *),
                  void *argument);

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

       qsort_r(): _GNU_SOURCE

BESCHREIBUNG

       Die  Funktion  qsort()  sortiert ein Feld mit nmemb Elementen der Größe groesse. Das Argument basis zeigt
       auf den Anfang des Feldes.

       Die Inhalte des Feldes werden in aufsteigender Reihenfolge sortiert, bezogen auf eine Vergleichsfunktion,
       auf die vergleich zeigt. Diese wird mit zwei Argumenten aufgerufen, die auf die zu vergleichenden Objekte
       zeigen.

       Die Vergleichsfunktion muss eine Ganzzahl zurückgeben, die kleiner,  gleich  oder  größer  Null  ist,  je
       nachdem,  ob  das  erste  Argument  kleiner, gleich oder größer als das zweite ist. Wenn zwei Inhalte des
       Feldes gleich sind, ist ihre Reihenfolge unbestimmt.

       Die Funktion qsort_r() ist mit qsort() identisch, außer, dass die Vergleichsfunktion compar  ein  drittes
       Argument entgegennimmt. An die Vergleichsfunktion wird ein Zeiger per argument übergeben. Auf diese Weise
       benötigt die Vergleichsfunktion keine globalen Variablen, um beliebige Argumente weiterzureichen und  ist
       daher ablaufinvariant und sicher für die Verwendung in Threads.

RÜCKGABEWERT

       Die Funktionen qsort() und qsort_r() geben keinen Wert zurück.

VERSIONEN

       qsort_r() wurde Glibc in Version 2.8 hinzugefügt.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

       ┌───────────────────┬───────────────────────┬─────────┐
       │SchnittstelleAttributWert    │
       ├───────────────────┼───────────────────────┼─────────┤
       │qsort(), qsort_r() │ Multithread-Fähigkeit │ MT-Safe │
       └───────────────────┴───────────────────────┴─────────┘

KONFORM ZU

       qsort(): POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.

ANMERKUNGEN

       Um C-Zeichenketten zu vergleichen, rufen Sie strcmp(3) auf, wie es im folgenden Beispiel gezeigt wird.

BEISPIELE

       Ein Beispiel für den Gebrauch finden Sie unter bsearch(3).

       Ein   weiteres   Beispiel   ist   das   folgende   Programm,   das   Zeichenketten   sortiert,   die  als
       Befehlszeilen-Argumente übergebenen werden:

       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>

       static int
       cmpstringp(const void *p1, const void *p2)
       {
           /* Die tatsächlichen Argumente dieser Funktion sind »Zeiger auf
              Zeiger auf char«, strcmp(3)-Argumente sind aber »Zeiger auf
              char«, daher wird im Folgenden umgewandelt und zurückverfolgt*/

           return strcmp(*(const char **) p1, *(const char **) p2);
       }

       int
       main(int argc, char *argv[])
       {
           if (argc < 2) {
               fprintf(stderr, "Aufruf: %s <Zeichenkette>…\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           qsort(&argv[1], argc - 1, sizeof(char *), cmpstringp);

           for (int j = 1; j < argc; j++)
               puts(argv[j]);
           exit(EXIT_SUCCESS);
       }

SIEHE AUCH

       sort(1), alphasort(3), strcmp(3), versionsort(3)

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  5.10  des  Projekts  Linux-man-pages.  Eine  Beschreibung  des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
       sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite  wurde  von  Patrick  Rother  <krd@gulu.net>,  Chris  Leick
       <c.leick@vollbio.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die  GNU  General  Public  License  Version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 die
       Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.

                                                1. November 2020                                        QSORT(3)