Hola estoy intentando leer en un directorio los ficheros q contiene para asi poder sakar su tamaño y GID , el programa seria el siguiente :
Ahora hice algunos cambios :
#include<stdio.h>
#include<dirent.h>
#include<sys/stat.h>
#include<sys/types.h>
int main(){
DIR *dir_act;
struct dirent *dirp;
struct stat fich;
char *nombre;
char *ruta= "/bin";
int arch_gid;
double siz_arch;
if((dir_act = opendir(ruta)) == NULL)
printf("Error al abrir el directorio\n");
dirp = readdir(dir_act);
while((dirp = readdir(dir_act)) != NULL){
nombre=dirp->d_name;
printf("El nombre del archivo es : %s\n" , nombre );
stat(nombre,&fich);
arch_gid = fich.st_gid;
siz_arch= fich.st_size;
printf("GID -> %d \n", arch_gid);
printf("tamaño -> %f \n", siz_arch);
dirp=readdir(dir_act);
}
closedir(dir_act);
}
El problema lee los archivos y me dice el nombre correcto de kada uno pero el GID y el Tamaño del archivo es incorrecto, yo creo que el problema puede ser en el campo ruta , ya ke kuando le digo q busque en la ruta "." me saka los resultados correctos. No entiendo el error, si alguien le puede echar un ojo me haria un gran favor.
Gracias :)