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 :
Si on ouvre monSuperFicheir on constate que la nieme écriture
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
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) ;
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.....)
Merci !!
Partager