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 : 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) ;
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.....)

Merci !!