| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
alfred_oh
Registrado: 01 Oct 2011 Mensajes: 1
| Publicado: 01/10/2011 6:22 am | | | Título: Ayuda con la funcion stat()!!!! tamaño de los archivos! |
| Buenas, estoy haciendo un programa que permite conocer el tamaño del los archivos contenidos en un directorio. El código es el siguiente:
DIR *dirp; dirp = opendir(argv[1]); struct dirent *dirlei;
if(strcmp(argv[2],"-s")==0) { while((dirlei = readdir(dirp)) != NULL) { fprintf(stdout, "%s ",dirlei->d_name); struct stat mem; if(stat(dirlei->d_name,&mem)!=EBADF) { fprintf(stdout,"(%d)\n",mem.st_size); } } closedir(dirp); exit(0); }
El problema es que cuando esta listando los directorios con sus respectivos tamaños solo lo hace bien desde el directorio donde estoy. Luego cuando le pongo la ruta de otro directorio no coloca los tamaños que deberían ser, sino que los elementos pueden tener un tamaño de 2048 o 191. Alguien tiene alguna idea de lo que podría estar fallando??? Esta mi bucle mal implementado??? 1000 Gracias!!!!!!! |
| | Volver arriba | |  | _Leo_
Registrado: 20 Oct 2005 Mensajes: 399 Ubicación: Buenos Aires, Argentina
| Publicado: 10/10/2011 6:02 pm | | | Título: |
| Veo que no estás controlando que opendir() haya tenido éxito. Es probable que el problema esté ahí y no lo sabes porque el programa sigue corriendo aunque no haya podido abrir el directorio. _________________ _Leo_ Daphne - administrador de tareas Cine, tecnología, sociedad |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |