Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       bsearch - Recherche dichotomique dans un tableau trié

SYNOPSIS

       #include <stdlib.h>

       void *bsearch(const void *key, const void *base,
                     size_t nmemb, size_t size,
                     int (*compar)(const void *, const void *));

DESCRIPTION

       La  fonction  bsearch()  recherche  l'objet  correspondant à key, dans un tableau de nmemb
       objets, commençant à l'adresse base. La taille de chaque élément du tableau  est  indiquée
       dans size.

       Le  contenu  du  tableau  doit  être  trié en ordre croissant par rapport à la fonction de
       comparaison référencée par compar. La routine compar doit être capable  de  recevoir  deux
       arguments,  le  premier  pointant  sur l'objet key, et le second sur un élément du tableau
       (l'ordre des arguments est toujours respecté par bsearch). Cette  routine  doit  retourner
       une  valeur  entière  respectivement inférieure, égale ou supérieure à zéro si l'objet key
       est inférieur, égal, ou supérieur à l'élément du tableau.

VALEUR RENVOYÉE

       La fonction bsearch() renvoie un pointeur sur l'élément du tableau correspondant  à  celui
       recherché,  ou  NULL  si  aucun  élément  ne  correspond. Si plusieurs éléments du tableau
       correspondent à la clé, celui qui est renvoyé n'est pas spécifié.

CONFORMITÉ

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

EXEMPLE

       L'exemple suivant trie d'abord un  tableau  de  structures  en  utilisant  qsort(3),  puis
       retrouve les éléments désirés en utilisant 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)
       {
           struct mi *mi1 = (struct mi *) m1;
           struct mi *mi2 = (struct mi *) m2;
           return strcmp(mi1->name, mi2->name);
       }

       int
       main(int argc, char **argv)
       {
           int i;

           qsort(months, nr_of_months, sizeof(struct mi), compmi);
           for (i = 1; i < argc; i++) {
               struct mi key, *res;
               key.name = argv[i];
               res = bsearch(&key, months, nr_of_months,
                             sizeof(struct mi), compmi);
               if (res == NULL)
                   printf("'%s': unknown month\n", argv[i]);
               else
                   printf("%s: month #%d\n", res->name, res->nr);
           }
           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

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

COLOPHON

       Cette  page  fait partie de la publication 3.57 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/> (2003-2006). Florentin  Duneau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».

                                        1er novembre 2003                              BSEARCH(3)