Man page - bsearch(3)

Packages contains this manual

Available languages:

en fr pt_BR es pl ko ja ru ro de

Manual

bsearch

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ATTRIBUTS
STANDARDS
HISTORIQUE
EXEMPLES
VOIR AUSSI
TRADUCTION

NOM

bsearch - Recherche dichotomique dans un tableau trié

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <stdlib.h>

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

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Ă©.

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3874233-1.png

STANDARDS

C11, POSIX.1-2008.

HISTORIQUE

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

EXEMPLES

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>
#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("'%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)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr> et Grégoire Scano <gregoire.scano@malloc.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .