Provided by: manpages-es-dev_4.18.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.

VERSIONES

       qsort_r() ha sido añadida en la versión 2.8 de glibc.

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(): POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.

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⟩.