Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

hsearch(3)

lsearch(3)

qsort(3)

tsearch(3)

standards(5)

bsearch(3)  —  Subroutines

NAME

bsearch − Performs a binary search

LIBRARY

Standard C Library (libc.so, libc.a)

SYNOPSIS

#include <stdlib.h>

void ∗bsearch(
    const void ∗key,
    const void ∗base,
    size_t nmemb,
    size_t size,
    int (∗compar)(const void ∗, const void ∗));

STANDARDS

Interfaces documented on this reference page conform to industry standards as follows:

bsearch():  XPG4, XPG4−UNIX

Refer to the standards(5) reference page for more information about industry standards and associated tags. 

PARAMETERS

keyTarget of search. 

basePoints to the initial object in the array. 

nmembSpecifies the number of elements in the array. 

sizeSpecifies the byte size of each element of the array. 

comparPoints to the comparison function, which is called with two parameters that point to the key object and to an array member, in that order. 

DESCRIPTION

The bsearch() function does a binary search and returns a pointer in an array that indicates where an object is found. 

The compar comparison function is called with two parameters that point to objects that are compared during the search.  This function returns an integer less than, equal to, or greater than 0 (zero) depending whether the object pointed to by the key parameter is considered to be less than, equal to, or greater than the array element. 

NOTES

[Digital]  The bsearch() function is reentrant, but care should be taken to ensure that the function supplied as argument compar is also reentrant. 

RETURN VALUES

Upon successful completion, the bsearch() function returns a pointer to a matching object in the array.  A NULL is returned when no match is found.  When two or more objects compare equally, the returned object is unspecified. 

RELATED INFORMATION

Functions: hsearch(3), lsearch(3), qsort(3), tsearch(3)

Standards: standards(5)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026