Comment écraser un fichier texte?

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.