Provided by: manpages-de-dev_2.14-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 ein
       Integer 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  4.16  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)