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