Provided by: manpages-de-dev_4.27.0-1_all bug

BEZEICHNUNG

       bsearch - binäre Suche in einem sortierten Feld (Array)

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <stdlib.h>

       void *bsearch(const void Schlüssel[.groesse], const void Basis[.size * .nmemb],
                     size_t nmemb, size_t groesse,
                     int (*vergl)(const void [.groesse], const void [.groesse]));

BESCHREIBUNG

       Die  Funktion  bsearch()  durchsucht ein Feld von nmemb Objekten nach Übereinstimmung mit dem Objekt, auf
       das Schlüssel zeigt. Basis zeigt auf das erste Objekt des Felds; groesse legt die Größe der einzelnen  im
       Feld enthaltenen Objekte fest.

       Der  Inhalt des Felds sollte gemäß der Vergleichsfunktion vergl aufsteigend sortiert sein. Von vergl wird
       erwartet, dass sie zwei Argumente verarbeitet. Das erste Argument verweist auf das Schlüssel-Objekt;  das
       zweite auf ein Element des Arrays. Der Rückgabewert sollte eine Ganzzahl kleiner, gleich oder größer Null
       sein, je nachdem, ob das Schlüssel-Objekt kleiner, gleich oder größer als das Element des Felds ist.

RÜCKGABEWERT

       Die  Funktion  bsearch()  gibt  einen  Zeiger  auf ein passendes Feldelement zurück oder NULL, wenn keine
       Übereinstimmung gefunden wurde. Gibt es mehrere Treffer für Schlüssel, ist nicht definiert,  auf  welches
       Element der Zeiger weist.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌───────────────────────────────────────────────────────────────────┬───────────────────────┬───────────┐
       │ SchnittstelleAttributWert      │
       ├───────────────────────────────────────────────────────────────────┼───────────────────────┼───────────┤
       │ bsearch()                                                         │ Multithread-Fähigkeit │ MT-Sicher │
       └───────────────────────────────────────────────────────────────────┴───────────────────────┴───────────┘

STANDARDS

       C11, POSIX.1-2008.

GESCHICHTE

       POSIX.1-2001, C89, C99, SVr4, 4.3BSD.

BEISPIELE

       Das  folgende  Beispiel  sortiert  zuerst  mittels  qsort(3)  ein  Feld von Strukturen und sucht dann mit
       bsearch() nach dem gewünschten Element.

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

       #define ARRAY_SIZE(arr)  (sizeof((arr)) / sizeof((arr)[0]))

       struct mi {
           int         nr;
           const char  *name;
       };

       static struct mi  months[] = {
           { 1, "jan" }, { 2, "feb" }, { 3, "mär" }, { 4, "apr" },
           { 5, "mai" }, { 6, "jun" }, { 7, "jul" }, { 8, "aug" },
           { 9, "sep" }, {10, "okt" }, {11, "nov" }, {12, "dez" }
       };

       static int
       compmi(const void *m1, const void *m2)
       {
           const struct mi *mi1 = m1;
           const struct mi *mi2 = m2;

           return strcmp(mi1->name, mi2->name);
       }

       int
       main(int argc, char *argv[])
       {
           qsort(months, ARRAY_SIZE(months), sizeof(months[0]), compmi);
           for (size_t i = 1; i < argc; i++) {
               struct mi key;
               struct mi *res;

               key.name = argv[i];
               res = bsearch(&key, months, ARRAY_SIZE(months),
                             sizeof(months[0]), compmi);
               if (res == NULL)
                   printf("'%s': unbekannter Monat\n", argv[i]);
               else
                   printf("%s: Monat #%d\n", res->name, res->nr);
           }
           exit(EXIT_SUCCESS);
       }

SIEHE AUCH

       hsearch(3), lsearch(3), qsort(3), tsearch(3)

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Jens  Rohler  <jkcr@rohler.de>,  Martin  Eberhard
       Schauer <Martin.E.Schauer@gmx.de> und Helge Kreutzmann <debian@helgefjell.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  die
       Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

Linux man-pages 6.9.1                             15. Juni 2024                                       bsearch(3)