Calculer la taille d'un fichier
	
	
		Bonjour
Je cherche à connaitre la taille de certains fichiers en octets.
Voici les 2 méthodes que j'ai tentée.
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
   |  
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
 
int main(int argc, char *argv[] )
{
    struct stat buf;
    int result;
    long size;
    FILE *fd;
    result = stat ( argv[1], &buf );
    if (result == -1 ) return (-1);
    fprintf(stdout, "1)Taille de '%s' : %ld octets\n", argv[1], (long )buf.st_size);
    if (( fd = fopen (argv[1], "rb")) == NULL)
    {perror("\t fopen() ");return (-1); }
    fseek(fd, 0, SEEK_END);
    size = ftell(fd);
    fclose (fd);
    fprintf(stdout, "2)Taille de '%s' : %ld octets\n", argv[1], size);
    return 0;
} | 
 Ces 2 méthodes marche trés bien sur des fichiers de plusieurs Mo mais qand je fait le test sur un fichier de plusieurs Go ca ne marche pas.
Exemple:
	Code:
	
1 2 3 4 5 6 7 8
   |  
 
$ ./test /mnt/data/LiveCD.iso  // Taille réelle 735715328 octets
1)Taille de '/mnt/data/LiveCD.iso'  : 735715328 octets
2)Taille de '/mnt/data/LiveCD.iso'  : 735715328 octet
$ ./test /mnt/data/LiveDVD.iso  // Taille réelle 4681426944 octets
1)Taille de '/mnt/data/LiveDVD.iso' : 386459648 octets
2)Taille de '/mnt/data/LiveDVD.iso' : 386459648 octets  | 
 
J'ai consulté la FAQ qui parle de la secondes méthodes.
Bref je suis coincé.
Si vous avez des idées pour moi, j'en serais ravie ;)