Provided by: manpages-es-dev_4.13-4_all 

NOMBRE
bsearch - búsqueda binaria en un arreglo (array) ordenado
SINOPSIS
#include <stdlib.h>
void *bsearch(const void *key, const void *base,
size_t nmemb, size_t size,
int (*compar)(const void *, const void *));
DESCRIPCIÓN
La función bsearch() busca en un arreglo de nmemb elementos, donde el primer elemento está apuntado por
base, un elemento que coincida con el objecto apuntado por key. El tamaño de cada elementos del arreglo
es especificado por size.
El contenido del arreglo debe estar ordenado en orden ascendente según la función de comparación
referenciada por compar. Se espera que la rutina compar tenga dos argumentos que apunten al objeto key y
a un elemento del arreglo, en ese orden, y debe devolver un entero menor, igual o mayor que cero si
resulta que el objeto key es menor, igual o mayor (respectivamente) que el elemento del arreglo.
VALOR DEVUELTO
La función bsearch() devuelve un puntero al elemento del arreglo que coincide, o NULL si no hay
coincidencia. Si hay múltiples elementos que coinciden con la clave, el elemento devuelto está sin
determinar.
ATRIBUTOS
Para obtener una explicación de los términos usados en esta sección, véase attributes(7).
┌───────────┬────────────────────┬───────────────────┐
│ Interfaz │ Atributo │ Valor │
├───────────┼────────────────────┼───────────────────┤
│ bsearch() │ Seguridad del hilo │ Multi-hilo seguro │
└───────────┴────────────────────┴───────────────────┘
CONFORME A
POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
EJEMPLOS
The example below first sorts an array of structures using qsort(3), then retrieves desired elements
using bsearch().
#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)
{
const struct mi *mi1 = m1;
const struct mi *mi2 = m2;
return strcmp(mi1->name, mi2->name);
}
int
main(int argc, char **argv)
{
qsort(months, nr_of_months, sizeof(months[0]), compmi);
for (int i = 1; i < argc; i++) {
struct mi key;
struct mi *res;
key.name = argv[i];
res = bsearch(&key, months, nr_of_months,
sizeof(months[0]), compmi);
if (res == NULL)
printf("'%s': unknown month\n", argv[i]);
else
printf("%s: month #%d\n", res->name, res->nr);
}
exit(EXIT_SUCCESS);
}
VÉASE TAMBIÉN
hsearch(3), lsearch(3), qsort(3), tsearch(3)
COLOFÓN
Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del
proyecto, información sobre cómo informar errores y la última versión de esta página en
https://www.kernel.org/doc/man-pages/.
TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Sebastian Desimone
<chipy@argenet.com.ar> y Juan Pablo Puerta <jppuerta@full-moon.com>
Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con
respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a
debian-l10n-spanish@lists.debian.org.
1 Noviembre 2020 BSEARCH(3)