.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Mon Mar 29 22:41:16 1993, David Metcalfe .\" Modified Sat Jul 24 21:35:16 1993, Rik Faith (faith@cs.unc.edu) .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH bsearch 3 "20 julho 2023" "Linux man\-pages 6.05.01" .SH NOME bsearch \- busca binária em um array ordenado .SH BIBLIOTECA Biblioteca C Padrão (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSE .nf \fB#include \fP .PP \fBvoid *bsearch(const void \fP\fIkey\fP\fB[.\fP\fIsize\fP\fB], const void \fP\fIbase\fP\fB[.\fP\fIsize\fP\fB * .\fP\fInmemb\fP\fB],\fP \fB size_t \fP\fInmemb\fP\fB, size_t \fP\fIsize\fP\fB,\fP \fB int (*\fP\fIcompar\fP\fB)(const void [.\fP\fIsize\fP\fB], const void [.\fP\fIsize\fP\fB]));\fP .fi .SH DESCRIÇÃO A função \fBbsearch\fP() busca em um array de \fInmemb\fP objetos, a partir do membro inicial apontado por \fIbase\fP, por um membro que corresponde ao objeto apontado por \fIchave\fP. O tamanho de cada membro do array é especificado por \fItam\fP. .PP O conteúdo do array deve estar em ordem crescente de acordo com a função de comparação referenciada por \fIcompar\fP. Espera\-se que a rotina \fIcompar\fP tenha dois argumentos que apontam para o objeto \fIchave\fP e para um membro do array, nesta ordem, e deve retornar um número inteiro menor, igual ou maior que zero se o objeto \fIchave\fP for descoberto, respectivamente, como sendo menor que, igual a ou maior que o membro do array. .SH "VALOR DE RETORNO" A função \fBbsearch\fP() 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. .SH ATRIBUTOS Para uma explicação dos termos usados nesta seção, consulte \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Atributo Valor T{ .na .nh \fBbsearch\fP() T} Thread safety MT\-Safe .TE .sp 1 .SH PADRÕES C11, POSIX.1\-2008. .SH HISTÓRICO POSIX.1\-2001, C89, C99, SVr4, 4.3BSD. .SH EXEMPLOS O exemplo abaixo primeiro classifica um array de estruturas usando \fBqsort\fP(3) e, em seguida, recupera os elementos desejados usando \fBbsearch\fP(). .PP .\" SRC BEGIN (bsearch.c) .EX #include #include #include \& #define ARRAY_SIZE(arr) (sizeof((arr)) / sizeof((arr)[0])) \& struct mi { int nr; const char *name; }; \& static struct mi 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" } }; \& 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, ARRAY_SIZE(months), sizeof(months[0]), compmi); for (size_t i = 1; i < argc; i++) { struct mi key; struct mi *res; \& key.name = argv[i]; res = bsearch(&key, months, ARRAY_SIZE(months), sizeof(months[0]), compmi); if (res == NULL) printf("\[aq]%s\[aq]: unknown month\en", argv[i]); else printf("%s: month #%d\en", res\->name, res\->nr); } exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "VEJA TAMBÉM" \fBhsearch\fP(3), \fBlsearch\fP(3), \fBqsort\fP(3), \fBtsearch\fP(3) .PP .SH TRADUÇÃO A tradução para português brasileiro desta página man foi criada por Paulo César Mendes , André Luiz Fassone e Rafael Fontenelle . . .PP Esta tradução é uma documentação livre; leia a .UR https://www.gnu.org/licenses/gpl-3.0.html Licença Pública Geral GNU Versão 3 .UE ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita. .PP Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para .MT debian-l10n-portuguese@lists.debian.org a lista de discussão de tradutores .ME .