qsort(3) Library Functions Manual qsort(3) NOM qsort, qsort_r - Trier un tableau BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include void qsort(size_t n, size_t size; void base[n * size], size_t n, size_t size, typeof(int (const void [size], const void [size])) *compar); void qsort_r(size_t n, size_t size; void base[n * size], size_t n, size_t size, typeof(int (const void [size], const void [size], void *)) *compar, void *arg); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : qsort_r(): _GNU_SOURCE DESCRIPTION La fonction qsort() trie un tableau contenant n elements de taille size. L'argument base pointe sur le debut du tableau. Le contenu du tableau est trie en ordre croissant, en utilisant la fonction de comparaison pointee par compar, laquelle est appelee avec deux arguments pointant sur les objets a comparer. La fonction de comparaison doit renvoyer un entier inferieur, egal, ou superieur a zero si le premier argument est respectivement considere comme inferieur, egal ou superieur au second. Si la comparaison des deux arguments renvoie une egalite (valeur de retour nulle), l'ordre des deux elements est indefini. La fonction qsort_r() est identique a qsort() si ce n'est que la fonction de comparaison compar prend un troisieme argument. Un pointeur est passe a la fonction de comparaison a l'aide de arg. De cette facon, la fonction de comparaison n'a pas besoin d'utiliser des variables globales a passer a l'aide d'arguments arbitraires, et est par consequent rentrante et securisee pour utiliser dans des threads. VALEUR RENVOYEE Les fonction qsort() et qsort_r() ne renvoient pas de valeur. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |qsort(), qsort_r() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ NORMES qsort() C11, POSIX.1-2008. HISTORIQUE qsort() POSIX.1-2001, C89, SVr4, 4.3BSD. qsort_r() glibc 2.8. NOTES Pour comparer des chaines de caracteres C, la fonction de comparaison peut appeler strcmp(3), comme illustre 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 chaines donnees sur la ligne de commande : #include #include #include static int cmpstringp(const void *p1, const void *p2) { /* The actual arguments to this function are "pointers to pointers to char", but strcmp(3) arguments are "pointers to char", hence the following cast plus dereference. */ return strcmp(*(const char **) p1, *(const char **) p2); } int main(int argc, char *argv[]) { if (argc < 2) { fprintf(stderr, "Usage: %s ...\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 francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Jean-Baptiste Holcroft , Gregoire Scano et Jean-Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.18 8 fevrier 2026 qsort(3)