Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/11/2010, 17:29
davidtadeo
 
Fecha de Ingreso: agosto-2010
Mensajes: 153
Antigüedad: 13 años, 9 meses
Puntos: 1
Punteros y estructura dirent

Hola a todos, quiciera saber por que no puedo copiar las cadenas que me regresa la estructura dirent, d_name que vendria siendo el nombre del programa o la carpeta, al final los listo pero me salen todos del mismo nombre, en mi caso tengo la ultima carpeta llamada tad2 y es la unica que copia al apuntador de cadenas de caracteres, les agradeceria mucho que me ayuden, gracias

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <dirent.h>
  4. #include <sys/param.h>
  5. #include <dir.h>
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.  
  10.   FILE *ptr;
  11.   struct dirent *dir, *dirp;
  12.   char nombre [ MAXPATHLEN ], **carpetas, nom [ 100 ];
  13.   int x = 0;
  14.    
  15.   getcwd ( nombre, MAXPATHLEN );
  16.  
  17.   carpetas = malloc ( sizeof ( char * ) * 100 );
  18.  
  19.   if ( ( dir = opendir ( nombre ) ) == NULL ) {
  20.        printf ("No se pudo abrir el directorio %s\n", nombre );
  21.      }
  22.   else {
  23.        
  24.        for ( dirp = readdir ( dir ); dirp != NULL; dirp = readdir ( dir ) ) {
  25.            printf ("%s\n", dirp->d_name );
  26.            carpetas [ x ] = dirp->d_name;
  27.            ++x;
  28.        }  
  29.        
  30.        printf ("\n\n");
  31.        for ( x = 0; carpetas [ x ] != NULL; x++ ) {
  32.            printf ("%s\n", carpetas [ x ] );
  33.        }
  34.        
  35.        }
  36.  
  37.   system("PAUSE"); 
  38.   return 0;
  39. }