Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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)