| Citation : 
 
 Si j’enlève ("main.c" ) à la fin du programme il me renvoie TAILLE : 4199056 
 | 
[n-ième edit, j'ai fini par comprendre...]
Si tu mets  
| Code : 
 printf("TAILLE : %ld\n", file_size);
 | 
tu n'appelles pas la fonction mais tu recois un pointeur vers cette fonction. Sauf que %ld c'est pas le bon format pour afficher ça et mingw se plaint:
| Citation : 
 
 
main.c|24|warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'long int (*)(char *)' [-Wformat]
 
 
 | 
Bref, n'importe quoi, faut mettre des parenthèses et un argument correct.
 
Bon, pour le problème en soi chez moi (XP, mingw) ça compile et fonctionne très bien...
 
Si tu recois -1 en retour c'est probablement là
| Code : 
 if(file == NULL)   {      return -1;   }
 | 
que ça coince... Rajoute donc un perror("opening file: " ); et regarde ce que ça donne. http://en.cppreference.com/w/c/io/perror
 
edit: 4 096 octets c'est probablement pas la taille réelle mais la taille d'un secteur(?). Sous XP en faisant click droit sur un fichier et propriétés il y a deux infos, taille et taille sur le disque.
 
Message édité par rat de combat le 15-05-2015 à 13:43:47