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

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).
       ┌───────────┬────────────────────┬───────────────────┐
       │ InterfazAtributoValor             │
       ├───────────┼────────────────────┼───────────────────┤
       │ 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)