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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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)