--- /dev/null
+.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" References consulted:
+.\" Linux libc source code
+.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
+.\" 386BSD man pages
+.\" Modified Mon Mar 29 22:41:16 1993, David Metcalfe
+.\" Modified Sat Jul 24 21:35:16 1993, Rik Faith (faith@cs.unc.edu)
+.\" Translated into German by Jens Rohler (jkcr@rohler.de)
+.\"
+.TH BSEARCH 3 "12. März 2006" "" "Bibliotheksfunktionen"
+.SH BEZEICHNUNG
+bsearch \- Binäre Suche in einem sortierten Array
+.SH "ÜBERSICHT"
+.nf
+.B #include <stdlib.h>
+.sp
+.BI "void *bsearch(const void *" key ", const void *" base ", size_t " nmemb ,
+.RS
+.BI "size_t " size ", int (*" compar ")(const void *, const void *));"
+.RE
+.fi
+.SH BESCHREIBUNG
+\fBbsearch()\fP durchsucht ein Array mit einer Anzahl von \fInmemb\fP
+Elementen, auf dessen erstes Element \fIbase\fP zeigt, nach einem
+Element, das mit dem Objekt übereinstimmt auf das \fIkey\fP zeigt.
+Die Größe der einzelnen Elemente des Arrays ist durch \fIsize\fP festgelegt.
+.PP
+Der Inhalt des Arrays sollte gemäß der Vergleichsfunktion, auf die
+\fIcompar\fP verweist, aufsteigend sortiert sein.
+Die Funktion \fIcompar\fP muss zwei Argumente entgegennehmen. Das erste
+Argument muss auf \fIkey\fP und das zweite auf ein Arrayelement verweisen.
+Der Rückgabewert sollte ein integer sein, der kleiner,
+gleich oder größer Null ist, falls das \fIkey\fP Objekt kleiner, gleich oder
+größer als das Arrayelement ist.
+.SH RÜCKGABEWERT
+Die Funktion \fBbsearch()\fP gibt einen Zeiger auf ein passendes Arrayelement
+zurück, oder NULL wenn keine Übereinstimmung gefunden wurde. Gibt es
+mehrere Elemente die auf \fIkey\fP passen ist das zurückgegebene Element
+nicht spezifiziert.
+.SH BEISPIEL
+Das folgende Beispiel sortiert zuerst ein Array von Strukturen mittels
+.BR qsort (3),
+und sucht dann nach dem gewünschten Element mit
+.BR bsearch() .
+.sp
+.nf
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+struct mi {
+ int nr;
+ char *name;
+} months[] = {
+ { 1, "jan" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" },
+ { 5, "may" }, { 6, "jun" }, { 7, "jul" }, { 8, "aug" },
+ { 9, "sep" }, {10, "oct" }, {11, "nov" }, {12, "dec" }
+};
+
+#define nr_of_months (sizeof(months)/sizeof(months[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(months, nr_of_months, sizeof(struct mi), compmi);
+ for (i = 1; i < argc; i++) {
+ struct mi key, *res;
+ key.name = argv[i];
+ res = bsearch(&key, months, nr_of_months,
+ sizeof(struct mi), compmi);
+ if (res == NULL)
+ printf("'%s': unknown month\en", argv[i]);
+ else
+ printf("%s: month #%d\en", res->name, res->nr);
+ }
+ return 0;
+}
+.fi
+.\" this example referred to in qsort.3
+.SH KONFORM ZU
+SVID 3, BSD 4.3, ISO 9899 (C99)
+.SH SIEHE AUCH
+.BR hsearch (3),
+.BR lsearch (3),
+.BR qsort (3),
+.BR tsearch (3),