Provided by: manpages-de-dev_2.16-1_all bug

BEZEICHNUNG

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

ÜBERSICHT

       #include <stdlib.h>

       void *bsearch(const void *key, const void *base,
                     size_t nmemb, size_t size,
                     int (*compar)(const void *, const void *));

BESCHREIBUNG

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

       Der  Inhalt  des  Felds  sollte gemäß der Vergleichsfunktion compar aufsteigend sortiert sein. Von compar
       wird erwartet, dass sie zwei Argumente verarbeitet. Das erste Argument verweist auf das  key-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 key-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 key, 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-Safe │
       └───────────────┴───────────────────────┴─────────┘

KONFORM ZU

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

BEISPIEL

       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>

       struct mi {
           int Index;
           char *Name;
       } Monate[] = {
           { 1, "Jan" }, { 2, "Feb" }, { 3, "Mar" }, { 4, "Apr" },
           { 5, "Mai" }, { 6, "Jun" }, { 7, "Jul" }, { 8, "Aug" },
           { 9, "Sep" }, {10, "Okt" }, {11, "Nov" }, {12, "Dez" }
       };

       #define Anz_von_Monaten (sizeof(Monate)/sizeof(Monate[0]))

       static int
       compmi(const void *m1, const void *m2)
       {
           struct mi *mi1 = (struct mi *) m1;
           struct mi *mi2 = (struct mi *) m2;
           return strcmp(mi1->Name, mi2->Name);
       }

       int
       main(int argc, char **argv)
       {
           int i;

           qsort(Monate, Anz_von_Monaten, sizeof(struct mi), compmi);
           for (i = 1; i < argc; i++) {
               struct mi Schluessel, *res;
               Schluessel.Name = argv[i];
               res = bsearch(&Schluessel, Monate, Anz_von_Monaten,
                             sizeof(struct mi), compmi);
               if (res == NULL)
                   printf("'%s': unbekannter Monat\n", argv[i]);
               else
                   printf("%s: Monat #%d\n", res->Name, res->Index);
           }
           exit(EXIT_SUCCESS);
       }

SIEHE AUCH

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

KOLOPHON

       Diese  Seite  ist  Teil  der  Veröffentlichung  5.03  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 Jens Rohler <jkcr@rohler.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>.

                                               15. September 2017                                     BSEARCH(3)