Bonjour
Je cherche à connaitre la taille de certains fichiers en octets.
Voici les 2 méthodes que j'ai tentée.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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![]()
Partager