qsort(3) Library Functions Manual qsort(3) NOM qsort, qsort_r - Trier un tableau BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include 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 fonctionnalites pour la glibc (consulter feature_test_macros(7)) : qsort_r(): _GNU_SOURCE DESCRIPTION La fonction qsort() trie un tableau contenant nmemb lments de taille size. L'argument base pointe sur le dbut du tableau. Le contenu du tableau est tri en ordre croissant, en utilisant la fonction de comparaison pointe par compar, laquelle est appele avec deux arguments pointant sur les objets comparer. La fonction de comparaison doit renvoyer un entier infrieur, gal, ou suprieur zro si le premier argument est respectivement considr comme infrieur, gal ou suprieur au second. Si la comparaison des deux arguments renvoie une galit (valeur de retour nulle), l'ordre des deux lments est indfini. La fonction qsort_r() est identique qsort() si ce n'est que la fonction de comparaison compar prend un troisime argument. Un pointeur est pass la fonction de comparaison l'aide de arg. De cette faon, la fonction de comparaison n'a pas besoin d'utiliser des variables globales passer l'aide d'arguments arbitraires, et est par consquent rentrante et scurise 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 | +---------------------------------+--------------------------+---------+ STANDARDS qsort() C11, POSIX.1-2008. HISTORIQUE qsort() POSIX.1-2001, C89, SVr4, 4.3BSD. qsort_r() glibc 2.8. NOTES Pour comparer des chanes de caractresC, 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 chanes donnes 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 #-#-#-#-# min-002-occurences.po (perkamon) #-#-#-#-#, 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-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-003-occurences.po (perkamon) #-#-#-#-#, 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-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-004-occurences.po (perkamon) #-#-#-#-#, 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-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-010-occurences.po (perkamon) #-#-#-#-#, 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 , Thomas Vincent , #-#-#-#-# min-020-occurences.po (perkamon) #-#-#-#-#, 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-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-100-occurences.po (perkamon) #-#-#-#-#, 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-Philippe MENGUAL , Jean-Pierre Giraud et # 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.06 31 octobre 2023 qsort(3)