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