Man page - qsort(3)

Packages contains this manual

Available languages:

en fr es pl ja ru ro de

Manual

qsort

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

NOM

qsort, qsort_r - Trier un tableau

BIBLIOTHÈQUE

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

SYNOPSIS

#include <stdlib.h>

void qsort(void base [. size * . nmemb ], size_t nmemb , size_t size ,
int (*
compar )(const void [. size ], const void [. size ]));
void qsort_r(void
base [. size * . nmemb ], size_t nmemb , size_t size ,
int (*
compar )(const void [. size ], const void [. size ], void *),
void *
arg );

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros (7)) :

qsort_r ():
_GNU_SOURCE

DESCRIPTION

La fonction qsort () trie un tableau contenant nmemb Ă©lĂ©ments de taille size . L’argument base pointe sur le dĂ©but du tableau.

Le contenu du tableau est trié en ordre croissant, en utilisant la fonction de comparaison pointée par compar , laquelle est appelée avec deux arguments pointant sur les objets à comparer.

La fonction de comparaison doit renvoyer un entier infĂ©rieur, Ă©gal, ou supĂ©rieur Ă  zĂ©ro si le premier argument est respectivement considĂ©rĂ© comme infĂ©rieur, Ă©gal ou supĂ©rieur au second. Si la comparaison des deux arguments renvoie une Ă©galitĂ© (valeur de retour nulle), l’ordre des deux Ă©lĂ©ments est indĂ©fini.

La fonction qsort_r () est identique Ă  qsort () si ce n’est que la fonction de comparaison compar prend un troisiĂšme argument. Un pointeur est passĂ© Ă  la fonction de comparaison Ă  l’aide de arg . De cette façon, la fonction de comparaison n’a pas besoin d’utiliser des variables globales Ă  passer Ă  l’aide d’arguments arbitraires, et est par consĂ©quent rentrante et sĂ©curisĂ©e pour utiliser dans des threads.

VALEUR RENVOYÉE

Les fonction qsort () et qsort_r () ne renvoient pas de valeur.

ATTRIBUTS

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

Image grohtml-3888396-1.png

STANDARDS

qsort ()

C11, POSIX.1-2008.

HISTORIQUE

qsort ()

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

qsort_r ()

glibc 2.8.

NOTES

Pour comparer des chaĂźnes de caractĂšres C, la fonction de comparaison peut appeler strcmp (3), comme illustrĂ© dans l’exemple ci-dessous.

EXEMPLES

Pour un exemple d’utilisation, voir l’exemple de la page bsearch (3).

Un autre exemple d’utilisation est le programme ci-dessous, qui trie les chaĂźnes donnĂ©es sur la ligne de commande :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static int
cmpstringp(const void *p1, const void *p2)
{
/* Les arguments de cette fonction sont des « pointeurs de
pointeurs sur des caractÚres », mais les arguments de
strcmp(3) sont des « pointeurs sur des caractĂšres », d’oĂč
le forçage de type et le déréférencement. */
return strcmp(*(const char **) p1, *(const char **) p2);
}
int
main(int argc, char *argv[])
{
if (argc < 2) {
fprintf(stderr, "Utilisation : %s <chaĂźne>...\n", argv[0]);
exit(EXIT_FAILURE);
}
qsort(&argv[1], argc - 1, sizeof(char *), cmpstringp);
for (size_t j = 1; j < argc; j++)
puts(argv[j]);
exit(EXIT_SUCCESS);
}

VOIR AUSSI

sort (1), alphasort (3), strcmp (3), versionsort (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>, Grégoire Scano <gregoire.scano@malloc.fr> et Jean-Pierre Giraud <jean-pierregiraud@neuf.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 .