Provided by: manpages-de-dev_2.5-1_all 

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.
┌───────────────┬───────────────────────┬─────────┐
│ Schnittstelle │ Attribut │ Wert │
├───────────────┼───────────────────────┼─────────┤
│ 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.15 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)