Les Mystères de la programmation
Bonjour à tous et à toutes!
Voilà j'ai remarqué un comportement bizarre et étrange ,que je ne comprends pas, en effectuant des écritures dans des fichiers :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
// ouverture de mon fichier
FILE * f = fopen("monSuperFicheir","a");
if(f == NULL ) {printf("Impossible d'ouvrir le fichier \n");return;}
// Première écriture dans le fichier
fprintf(f," youpi j'écris dans mon fichier ! \n");
// fermeture du fichier (mais apparemment sans vider les buffers ! )
close(f);
// seconde ecriture
// f = fopen (..... blablabalabl )
// blablalablab
//....
close(f);
//....
//....
//....
// Nième écirture
// f = fopen(....... )
// blalblba
// puis on ferme avec close
close(f) ; |
Si on ouvre monSuperFicheir on constate que la nieme écriture
se trouve en première ligne et la première écriture en dernière ligne.
La question est pourquoi ?
D'après la documentation que j'ai pu lire close ne semble pas vider les buffers contrairement à fclose..... mais je ne comprends tout de même pas pourquoi ce phénomène se produit.... comment fonctionne exactement fprintf ???
que se passe-t-il derrière pour donner naissance à un tel phénomène.
( J'ai pensé un moment que mon ordinateur était possédé avant de me raisonner et de chercher une explication logique.....:bug:)
Merci !!