qsort(3) Library Functions Manual qsort(3) NOMBRE qsort, qsort_r - ordena un vector BIBLIOTECA Biblioteca Estandar C (libc, -lc) SINOPSIS #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); Requisitos de Macros de Prueba de Caracteristicas para glibc (vease feature_test_macros(7)): qsort_r(): _GNU_SOURCE DESCRIPCION La funcion qsort() ordena un vector de nmiemb elementos de tamano tam. El argumento base apunta al comienzo del vector. Los contenidos del vector se clasifican en orden ascendente de acuerdo a una funcion de comparacion a la que apunta compar, que se llama con dos argumentos que apuntan a los objetos a comparar. La funcion de comparacion 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 funcion qsort() y qsort_r() no devuelven nada. ATRIBUTOS Para obtener una explicacion de los terminos usados en esta seccion, vease attributes(7). +-----------------------------+--------------------+-------------------+ |Interfaz | Atributo | Valor | +-----------------------------+--------------------+-------------------+ |qsort(), qsort_r() | Seguridad del hilo | Multi-hilo seguro | +-----------------------------+--------------------+-------------------+ ESTANDARES 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 funcion que la realiza puede invocar la llamada strcmp(3) tal como se muestra en el siguiente ejemplo. EJEMPLOS Un buen ejemplo seria el que ilustra search(3). Another example is the following program, which sorts the strings given in its command-line arguments: #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); } VEASE TAMBIEN sort(1), alphasort(3), strcmp(3), versionsort(3) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Gerardo Aburruzaga Garcia y Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Paginas de manual de Linux 6.06 31 Octubre 2023 qsort(3)