J'utilise fopen
pour écrire dans un fichier binaire et utiliser la bibliothèque cstdio (stdio.h)
en raison d'un code existant et il doit être compatible avec plusieurs plates-formes sous Windows et Linux.Remplacer le fichier en utilisant le mode ajout pour fopen
Pour le prototype, FILE * fopen (const char * filename, const char * mode);
, j'utilise const char * mode = "ab"
, qui sera ajouté à un fichier binaire. Les opérations d'écriture ajoutent des données à la fin du fichier. Le fichier est créé s'il n'existe pas.
J'ai un nombre N de fichiers d'entrée où je traite des données et écris dans un fichier de sortie pour chaque type, où j'ai M types. Je traite un fichier d'entrée et écris les données dans chaque fichier de sortie correspondant. Je vais ensuite fermer ce fichier d'entrée et ouvrir (i + 1) e, et répéter le processus en ajoutant les données du fichier d'entrée dans les fichiers de sortie.
Si un fichier de sortie existe au début sur l'exécutable, je le veux supprimé. S'il existe et que je ne le supprime pas, alors quand j'utilise le mode "wb"
, il va juste ajouter des données au fichier de sortie, ce qui entraînera une duplication que je ne veux pas. Je suis ouvert à une solution de boost et je tiens à maintenir des normes mieux possible (éviter Posix si possible)
tenir, vous ou ne vous voulez pas remplacer? voulez-vous ajouter ce qu'il y a? Essayez d'être plus clair sur ce que vous aimeriez faire dans les cas "existe déjà" et "n'existe pas déjà" ... – eruciform
Essayez de clarifier votre objectif plus clairement, je ne peux pas vraiment dire de votre message et code si vous voulez écraser (supprimer) des fichiers existants ou éviter cela. En outre, votre code n'a pas beaucoup de sens, car l'ouverture d'un fichier existant en mode écriture le supprimera. – schnaader