Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       qsort, qsort_r - sortează o matrice

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #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);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       qsort_r():
           _GNU_SOURCE

DESCRIERE

       Funcția  qsort()  sortează  o  matrice  cu  nmemb  elemente  de  dimensiunea size. Argumentul base indică
       începutul matricei.

       Conținutul matricei este sortat în ordine crescătoare în conformitate cu o funcție de comparație indicată
       de compar, care este apelată cu două argumente care indică obiectele care sunt comparate.

       Funcția de comparare trebuie să returneze un număr întreg mai mic, egal sau  mai  mare  decât  zero  dacă
       primul  argument  este  considerat  a fi mai mic, egal sau mai mare decât al doilea. În cazul în care doi
       membri se compară ca fiind egali, ordinea lor în matricea sortată este nedefinită.

       Funcția qsort_r() este identică cu qsort(), cu excepția faptului că funcția de comparație compar primește
       un al treilea argument. Un indicator este transmis funcției de comparare prin arg. În acest fel,  funcția
       de  comparare  nu trebuie să utilizeze variabile globale pentru a trece prin argumente arbitrare și, prin
       urmare, este reentrantă și poate fi utilizată în siguranță în fire de execuție.

VALOAREA RETURNATĂ

       Funcțiile qsort() și qsort_r() nu returnează nicio valoare.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │ InterfațăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ qsort(), qsort_r()                                                      │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       qsort()
              C11, POSIX.1-2008.

ISTORIC

       qsort()
              POSIX.1-2001, C89, SVr4, 4.3BSD.

       qsort_r()
              glibc 2.8.

NOTE

       Pentru a compara șiruri de caractere C, funcția de comparare poate apela strcmp(3), după cum se arată  în
       exemplul de mai jos.

EXEMPLE

       Pentru un exemplu de utilizare, a se vedea exemplul de la bsearch(3).

       Un  alt exemplu este următorul program, care sortează șirurile de caractere date în argumentele din linia
       de comandă:

       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>

       static int
       cmpstringp(const void *p1, const void *p2)
       {
           /* Argumentele reale ale acestei funcții sunt " indicatori la
              indicatorii către char", dar argumentele strcmp(3) sunt "indicatori".
              către char", de aceea următoarele sunt convertite și dereferențiate. */

           return strcmp(*(const char **) p1, *(const char **) p2);
       }

       int
       main(int argc, char *argv[])
       {
           if (argc < 2) {
               fprintf(stderr, "Utilizare: %s <șir>...\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);
       }

CONSULTAȚI ȘI

       sort(1), alphasort(3), strcmp(3), versionsort(3)

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                   15 iunie 2024                                         qsort(3)