Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       bsearch - Recherche dichotomique dans une table triee

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 a key, dans une
       table de nmemb objets, commencant  a  l'adresse  base.  La  taille  des
       elements de la table est indiquee dans size.

       Le contenu de la table doit etre triee en ordre croissant par rapport a
       la fonction de comparaison referencee par  compar.  La  routine  compar
       doit  etre  capable de recevoir deux arguments, le premier pointant sur
       l'objet key, et le second sur un  element  de  la  table  (l'ordre  des
       arguments  est  toujours  respecte  par  bsearch).  Cette  routine doit
       retourner  une  valeur  entiere  respectivement  inferieure,  egale  ou
       superieure  a  zero  si l'objet key est inferieur, egal, ou superieur a
       l'element de la table.

VALEUR RENVOY'EE

       La fonction bsearch() renvoie un  pointeur  sur  l'element  du  tableau
       correspondant   a   celui  recherche,  ou  NULL  si  aucun  element  ne
       correspond. Si plusieurs elements de la table correspondent a  la  cle,
       celui qui est renvoye n'est pas specifie.

CONFORMIT'E

       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 elements desires 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(struct mi))

       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.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

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

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

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

                               1er novembre 2003                    BSEARCH(3)