[C con Clase] Directorios/Archivos en C

David lukas davidlukas en hotmail.com
Sab Oct 6 16:42:44 CEST 2007


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);

}

Ahora lo le que hace es mostrarme todos los archivos de la ruta /bin pero sale el GID y el Tamaño erroneos , poniendo la ruta "." sale correctamente , no entiendo el error . (Es en linux).

Gracias! :D

From: davidlukas en hotmail.com
To: cconclase en listas.conclase.net
Date: Sat, 6 Oct 2007 08:08:53 +0000
Subject: [C con Clase] Directorios/Archivos en C








Hola , estoy intentando realizar una aplicación sobre Unix y estoy estancado en esta funcion :

#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);
    nombre=dirp->d_name;   
    stat(nombre,&fich);
    arch_gid = fich.st_gid;
    siz_arch= fich.st_size;

    printf("tamaño : %f \n", siz_arch);
   
   return 0;
}

Lo que simplemente hace es , intenta coger el tamaño del primero archivo que se encuentra en esa ruta del directorio , pero me sale un resultado sin sentido :    " tamaño : -163754450.000000 "; 
Creo q el problema esta en la ruta , por ke si pongo "." , me sale los resultados correctos. Tb hay veces q poniendo otra runa me sale solo el primer resultado correcto y luego todo los demas del mismo tamaño q el primero , y no se por q :X .

Gracias :) .


Express yourself instantly with MSN Messenger! MSN Messenger

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071006/aeeadbd7/attachment.html>


Más información sobre la lista de distribución Cconclase