dwww Home | Manual pages | Find package

qsort(3)                   Library Functions Manual                   qsort(3)

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 fonc-
       tion 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  glo-
       bales  à passer à l'aide d'arguments arbitraires, et est par conséquent
       réentrante et sécurisée pour utiliser dans des threads.

VALEUR RENVOYÉE
       Les fonction qsort() et qsort_r() ne renvoient pas de valeur.

VERSIONS
       qsort_r()  was added in glibc 2.8.

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

       ┌─────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├─────────────────────────────────────┼──────────────────────┼─────────┤
       │qsort(), qsort_r()                   │ Sécurité des threads │ MT-Safe │
       └─────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS
       qsort(): POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.

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)
       {
           /* 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 <string>...\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 Chris-
       tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <ste-
       phan.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.cou-
       lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>,  Thomas  Huriaux
       <thomas.huriaux@gmail.com>,  Nicolas François <nicolas.francois@centra-
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon  Paillard  <si-
       mon.paillard@resel.enst-bretagne.fr>,    Denis   Barbier   <barbier@de-
       bian.org>, David  Prévot  <david@tilapin.org>,  Jean-Baptiste  Holcroft
       <jean-baptiste@holcroft.fr>   et  Grégoire  Scano  <gregoire.scano@mal-
       loc.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la        GNU        General       Public       License       version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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.03   7 janvier 2023                        qsort(3)

Generated by dwww version 1.15 on Sat Jun 29 01:09:16 CEST 2024.