oracular (3) qsort_r.3.gz

Provided by: manpages-es-dev_4.23.1-1_all bug

NOMBRE

       qsort, qsort_r - ordena un vector

BIBLIOTECA

       Biblioteca Estándar C (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);

   Requisitos de Macros de Prueba de Características para glibc (véase feature_test_macros(7)):

       qsort_r():
           _GNU_SOURCE

DESCRIPCIÓN

       La  función  qsort()  ordena  un  vector  de nmiemb elementos de tamaño tam.  El argumento base apunta al
       comienzo del vector.

       Los contenidos del vector se clasifican en orden ascendente de acuerdo a una función de comparación a  la
       que apunta compar, que se llama con dos argumentos que apuntan a los objetos a comparar.

       La  función  de  comparación  debe  devolver  un entero menor que, igual a, o mayor que cero si el primer
       argumento se considera respectivamente menor, igual o mayor que el segundo. Si dos miembros  se  comparan
       como iguales, su orden en el vector clasificado queda indefinido.

       The qsort_r()  function is identical to qsort()  except that the comparison function compar takes a third
       argument.  A pointer is passed to the comparison function via arg.  In this way, the comparison  function
       does not need to use global variables to pass through arbitrary arguments, and is therefore reentrant and
       safe to use in threads.

VALOR DEVUELTO

       La función qsort() y qsort_r() no devuelven nada.

ATRIBUTOS

       Para obtener una explicación de los términos usados en esta sección, véase attributes(7).

       ┌───────────────────────────────────────────────────────────────┬────────────────────┬───────────────────┐
       │InterfazAtributoValor             │
       ├───────────────────────────────────────────────────────────────┼────────────────────┼───────────────────┤
       │qsort(), qsort_r()                                             │ Seguridad del hilo │ Multi-hilo seguro │
       └───────────────────────────────────────────────────────────────┴────────────────────┴───────────────────┘

ESTÁNDARES

       qsort()
              C11, POSIX.1-2008.

HISTORIAL

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

       qsort_r()
              glibc 2.8.

NOTAS

       Para comparar cadenas de C, la función que la realiza puede invocar la  llamada  strcmp(3)  tal  como  se
       muestra en el siguiente ejemplo.

EJEMPLOS

       Un buen ejemplo sería el que ilustra search(3).

       Another example is the following program, which sorts the strings given in its command-line arguments:

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

VÉASE TAMBIÉN

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

TRADUCCIÓN

       La  traducción  al  español  de  esta  página  del  manual  fue  creada  por  Gerardo  Aburruzaga  García
       <gerardo.aburruzaga@uca.es> y Marcos Fouces <marcos@debian.org>

       Esta  traducción  es   documentación   libre;   lea   la   GNU   General   Public   License   Version   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  o posterior con respecto a las condiciones de copyright.  No
       existe NINGUNA RESPONSABILIDAD.

       Si encuentra algún error en la traducción de esta página  del  manual,  envíe  un  correo  electrónico  a
       ⟨debian-l10n-spanish@lists.debian.org⟩.