[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]El Miércoles, 15 octubre, 2003, a las 04:42 PM, Arturo Espinosa-Aldama escribió:
Bueno, en el ejemplo que mandaste, puede sustituir en el compare el return por el strcmp:From: Victor Antonio Gonz·lez Ch·vez <00458115 en academ01 cem itesm mx> To: Arturo Espinosa-Aldama <arturoea en hotmail com> CC: ayuda en linux org mx Subject: Re: [Ayuda] Ayuda para programar ls y ps Date: Wed, 15 Oct 2003 10:46:51 -0600Bueno gracias a todos por los comentarios, me han ayudado, pero ahora tengo un problema, voy apenas con el comando ls, como le hago para ordenar la salida o bueno los arvhivos que se imprimen.Si quieres ordenar, vas a tener que primero hacer un arreglo de apuntadores a dirent y vaciar todas las entradas del directorio alli y usando qsort (man 3 qsort) ordenar el arreglo. Luego ya iteras sobre el arreglo, en vez de hacerlo directamente conforme leias con readdir.qsort recibe un argumento que es un apuntador a funcion, el cual es llamado con dos apuntadores a tus estructuras (dos dirents) y debe devolver -1, 0 o 1, segun si el primer elemento es "menor" que el segundo, si son iguales, o si es "mayor".En http://www.cplusplus.com/ref/cstdlib/qsort.html encontre un ejemplo del uso de qsort.Saludos, Arturo
/* qsort example */ #include <stdio.h> #include <stdlib.h> char values[6][3] = { "yi", "io", "ha", "al", "om" , "ze" }; int compare (const char * a, const char * b) { return strcmp( a , b ); } int main () { int n; qsort (values, 6, sizeof(char)*3, compare); for (n=0; n<6; n++) { printf ("%s ",values[n]); } printf("\n"); return 0; } aqui hay otro ejemplo: http://heather.cs.ucdavis.edu/~matloff/UnixAndC/CLanguage/CLibQSort.html aunque claro, hay que primero averiguar el máximo nombre de cadena =). Saludos! _______________________________________________ Ayuda mailing list Ayuda en linux org mx Para salir de la lista: http://mail.linux.org.mx/mailman/listinfo/ayuda/