Provided by: manpages-pt-br-dev_4.15.0-9_all
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). ┌───────────────────────────────────────────────────────────────┬───────────────┬─────────┐ │Interface │ Atributo │ Valor │ ├───────────────────────────────────────────────────────────────┼───────────────┼─────────┤ │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)