Je code sur Unix. J’ai un fichier texte en sortie. Comment puis-je écraser le contenu chaque fois que j’appelle une fonction?
Exemple:
functionA(){ fp = fopen("text.txt",someflag); ... ...blabla .... fprintf(fp,"some new text"); }
Donc, en appelant functionA
, je devrais avoir text.txt avec un nouveau contenu.
Pour someflag
, j’ai déjà essayé a
, ab
et w+
, mais aucun avec le résultat que je veux. ( ab
ajoute un nouveau texte, w+
ouvre le fichier, mais fprintf
ne fonctionne pas). J’utilise C sur unix.
Flag "w"
devrait remplacer le fichier existant.
Voir cette documentation pour plus de détails, notamment:
L’argument de mode pointe sur une chaîne. Si la chaîne est l’une des suivantes, le fichier doit être ouvert dans le mode indiqué. Sinon, le comportement est indéfini.
- r ou rb: Ouvre le fichier pour la lecture.
- w ou wb: tronque à zéro ou crée un fichier pour l’écriture.
- a ou ab: Ajouter; ouvrir ou créer un fichier pour l’écriture en fin de fichier.
- r + ou rb + ou r + b: Ouvrir le fichier pour la mise à jour (lecture et écriture).
- w + ou wb + ou w + b: tronque à zéro ou crée un fichier pour la mise à jour.
- a + ou ab + ou a + b: Append; ouvrir ou créer un fichier pour la mise à jour, en écrivant à la fin du fichier.