Provided by: manpages-fr-dev_4.26.0-1_all 

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).
┌──────────────────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
│ Interface │ Attribut │ Valeur │
├──────────────────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
│ bsearch() │ Sécurité des threads │ MT-Safe │
└──────────────────────────────────────────────────────────────────────┴──────────────────────┴─────────┘
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.
Pages du manuel de Linux 6.9.1 15 juin 2024 bsearch(3)