.\" -*- 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 iulie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME bsearch \- căutare binară a unei matrice sortate .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .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 DESCRIERE Funcția \fBbsearch\fP() caută într\-o matrice de obiecte \fInmemb\fP, al cărei membru inițial este indicat de \fIbase\fP, un membru care se potrivește cu obiectul indicat de \fIkey\fP. Dimensiunea fiecărui membru al matricei este specificată de \fIsize\fP. .PP Conținutul matricei ar trebui să fie în ordine crescătoare în conformitate cu funcția de comparație la care face referire \fIcompar\fP. Se așteaptă ca rutina \fIcompar\fP să aibă două argumente care indică obiectul \fIkey\fP și un membru al matricei, în această ordine, și ar trebui să returneze un număr întreg mai mic, egal sau mai mare decât zero dacă obiectul \fIkey\fP este găsit, respectiv, mai mic, egal sau mai mare decât membrul matricei. .SH "VALOAREA RETURNATĂ" Funcția \fBbsearch\fP() returnează un indicator către un membru al matricei care corespunde sau NULL dacă nu se găsește nicio potrivire. În cazul în care există mai multe elemente care corespund cheii (key), elementul returnat este nespecificat. .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBbsearch\fP() T} Siguranța firelor MT\-Safe .TE .sp 1 .SH STANDARDE C11, POSIX.1\-2008. .SH ISTORIC POSIX.1\-2001, C89, C99, SVr4, 4.3BSD. .SH EXEMPLE Exemplul de mai jos sortează mai întâi o matrice de structuri utilizând \fBqsort\fP(3), apoi extrage elementele dorite utilizând \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, "ian" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" }, { 5, "mai" }, { 6, "iun" }, { 7, "iul" }, { 8, "aug" }, { 9, "sep" }, {10, "oct" }, {11, "noi" }, {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]: lună necunoscută\en", argv[i]); else printf("%s: luna nr.%d\en", res\->name, res\->nr); } exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "CONSULTAȚI ȘI" \fBhsearch\fP(3), \fBlsearch\fP(3), \fBqsort\fP(3), \fBtsearch\fP(3) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .