Provided by: manpages-pt-br-dev_4.15.0-9_all bug

NOME

       bsearch - busca binária em um array ordenado

SINOPSE

       #include <stdlib.h>

       void *bsearch(const void *chave, const void *base,
                     size_t nmemb, size_t tam,
                     int (*compar)(const void *, const void *));

DESCRIÇÃO

       A função bsearch() busca em um array de nmemb objetos, a partir do membro inicial apontado
       por base, por um membro que corresponde ao objeto apontado por chave. O  tamanho  de  cada
       membro do array é especificado por tam.

       O  conteúdo  do  array  deve estar em ordem crescente de acordo com a função de comparação
       referenciada por compar. Espera-se que a rotina compar tenha dois argumentos  que  apontam
       para  o  objeto  chave  e  para um membro do array, nesta ordem, e deve retornar um número
       inteiro menor, igual ou maior que zero se o objeto chave for descoberto,  respectivamente,
       como sendo menor que, igual a ou maior que o membro do array.

VALOR DE RETORNO

       A  função bsearch() retorna um ponteiro para um membro correspondente do array, ou NULO se
       nenhuma correspondência foi encontrada. Se houver  vários  elementos  que  correspondem  à
       chave, o elemento retornado é não especificado.

ATRIBUTOS

       Para uma explicação dos termos usados nesta seção, consulte attributes(7).

       ┌───────────────────────────────────────────────────────────────┬───────────────┬─────────┐
       │InterfaceAtributoValor   │
       ├───────────────────────────────────────────────────────────────┼───────────────┼─────────┤
       │bsearch()                                                      │ Thread safety │ MT-Safe │
       └───────────────────────────────────────────────────────────────┴───────────────┴─────────┘

DE ACORDO COM

       POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.

EXEMPLOS

       O exemplo abaixo primeiro classifica um array de estruturas usando qsort(3) e, em seguida,
       recupera os elementos desejados usando 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);
       }

VEJA TAMBÉM

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

COLOFÃO

       Esta página faz parte da versão 5.13 do projeto Linux man-pages. Uma descrição do projeto,
       informações  sobre  relatórios  de  bugs  e  a  versão mais recente desta página podem ser
       encontradas em https://www.kernel.org/doc/man-pages/.

TRADUÇÃO

       A tradução para português brasileiro desta página man foi criada por  Paulo  César  Mendes
       <drpc@ism.com.br>,   André   Luiz  Fassone  <lonely_wolf@ig.com.br>  e  Rafael  Fontenelle
       <rafaelff@gnome.org>.

       Esta tradução é uma documentação  livre;  leia  a  Licença  Pública  Geral  GNU  Versão  3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  ou  posterior  para  as condições de direitos
       autorais.  Nenhuma responsabilidade é aceita.

       Se você encontrar algum erro na tradução desta página de manual, envie um  e-mail  para  a
       lista de discussão de tradutores ⟨debian-l10n-portuguese@lists.debian.org⟩.

                                          27 agosto 2021                               BSEARCH(3)