xref: /netbsd-src/lib/libc/stdlib/bsearch.3 (revision eb7c1594f145c931049e1fd9eb056a5987e87e59)
1*eb7c1594Sagc.\"	$NetBSD: bsearch.3,v 1.10 2003/08/07 16:43:38 agc Exp $
26dda330eSthorpej.\"
35f8a6c06Sperry.\" Copyright (c) 1990, 1991, 1993, 1994
45f8a6c06Sperry.\"	The Regents of the University of California.  All rights reserved.
561f28255Scgd.\"
661f28255Scgd.\" This code is derived from software contributed to Berkeley by
761f28255Scgd.\" the American National Standards Committee X3, on Information
861f28255Scgd.\" Processing Systems.
961f28255Scgd.\"
1061f28255Scgd.\" Redistribution and use in source and binary forms, with or without
1161f28255Scgd.\" modification, are permitted provided that the following conditions
1261f28255Scgd.\" are met:
1361f28255Scgd.\" 1. Redistributions of source code must retain the above copyright
1461f28255Scgd.\"    notice, this list of conditions and the following disclaimer.
1561f28255Scgd.\" 2. Redistributions in binary form must reproduce the above copyright
1661f28255Scgd.\"    notice, this list of conditions and the following disclaimer in the
1761f28255Scgd.\"    documentation and/or other materials provided with the distribution.
18*eb7c1594Sagc.\" 3. Neither the name of the University nor the names of its contributors
1961f28255Scgd.\"    may be used to endorse or promote products derived from this software
2061f28255Scgd.\"    without specific prior written permission.
2161f28255Scgd.\"
2261f28255Scgd.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2361f28255Scgd.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2461f28255Scgd.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2561f28255Scgd.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2661f28255Scgd.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2761f28255Scgd.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2861f28255Scgd.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2961f28255Scgd.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3061f28255Scgd.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3161f28255Scgd.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3261f28255Scgd.\" SUCH DAMAGE.
3361f28255Scgd.\"
345f8a6c06Sperry.\"     from: @(#)bsearch.3	8.3 (Berkeley) 4/19/94
3561f28255Scgd.\"
365f8a6c06Sperry.Dd April 19, 1994
3761f28255Scgd.Dt BSEARCH 3
3861f28255Scgd.Os
3961f28255Scgd.Sh NAME
4061f28255Scgd.Nm bsearch
4161f28255Scgd.Nd binary search of a sorted table
42312aca53Sperry.Sh LIBRARY
43312aca53Sperry.Lb libc
4461f28255Scgd.Sh SYNOPSIS
45472351e1Swiz.In stdlib.h
4661f28255Scgd.Ft void *
4761f28255Scgd.Fn bsearch "const void *key" "const void *base" "size_t nmemb" "size_t size" "int (*compar) (const void *, const void *)"
4861f28255Scgd.Sh DESCRIPTION
4961f28255ScgdThe
5061f28255Scgd.Fn bsearch
5161f28255Scgdfunction searches an array of
5261f28255Scgd.Fa nmemb
53584ac844Sjtcobjects, the initial member of which is
5461f28255Scgdpointed to by
5561f28255Scgd.Fa base ,
5661f28255Scgdfor a member that matches the object pointed to by
5761f28255Scgd.Fa key .
5861f28255ScgdThe size of each member of the array is specified by
5961f28255Scgd.Fa size .
6061f28255Scgd.Pp
6161f28255ScgdThe contents of the array should be in ascending sorted order according
6261f28255Scgdto the comparison function referenced by
6361f28255Scgd.Fa compar .
6461f28255ScgdThe
6561f28255Scgd.Fa compar
6661f28255Scgdroutine
675f8a6c06Sperryis expected to have
6861f28255Scgdtwo arguments which point to the
6961f28255Scgd.Fa key
7061f28255Scgdobject and to an array member, in that order, and should return an integer
7161f28255Scgdless than, equal to, or greater than zero if the
7261f28255Scgd.Fa key
7361f28255Scgdobject is found, respectively, to be less than, to match, or be
7461f28255Scgdgreater than the array member.
7561f28255Scgd.Sh RETURN VALUES
7661f28255ScgdThe
7761f28255Scgd.Fn bsearch
7861f28255Scgdfunction returns a pointer to a matching member of the array, or a null
7961f28255Scgdpointer if no match is found.
8061f28255ScgdIf two members compare as equal, which member is matched is unspecified.
8161f28255Scgd.Sh SEE ALSO
8261f28255Scgd.Xr db 3 ,
8361f28255Scgd.Xr lsearch 3 ,
8461f28255Scgd.Xr qsort 3 ,
854e59d266Swiz.Xr tsearch 3
8661f28255Scgd.Sh STANDARDS
8761f28255ScgdThe
8861f28255Scgd.Fn bsearch
8961f28255Scgdfunction conforms to
9061f28255Scgd.St -ansiC .
91