Question naïve, si un développeur chevronné peut éclairer ma lanterne, pourquoi pas directement :open("MonFichier.temp")
write("MonFichier")
fsync("MonFichier")
close("MonFichier")
Quel est l'intérêt de passer par un fichier temporaire ? Pour le cas où il y aurait une coupure de courant avant la fin de l'écriture ? Si l'on travaille sur un gros fichier (ou une partition trop pleine), on risque de ne pas pouvoir écrire le fichier temporaire pour cause de partition pleine, problème qui n'apparaîtrait pas si l'on écrasait le fichier directement.
Bon, ceci dit si la taille à ajouter au fichier est importante, on risque d'écraser le fichier sans pouvoir écrire la totalité de la nouvelle taille.
Question subsidiaire (naïve aussi) : où faut-il créer ce fichier temporaire ? Dans /tmp (perte de temps si /tmp n'est pas sur la même partition que le fichier de destination) ? Dans le même répertoire que le fichier de destination (plus logique mais problème de la partition pleine) ?
[^] # Re: Forme canonique d'écriture de fichier
Posté par Naha (site web personnel) . En réponse à la dépêche Le noyau Linux 2.6.30 est disponible. Évalué à 3.
open("MonFichier.temp")write("MonFichier")
fsync("MonFichier")
close("MonFichier")
Quel est l'intérêt de passer par un fichier temporaire ? Pour le cas où il y aurait une coupure de courant avant la fin de l'écriture ? Si l'on travaille sur un gros fichier (ou une partition trop pleine), on risque de ne pas pouvoir écrire le fichier temporaire pour cause de partition pleine, problème qui n'apparaîtrait pas si l'on écrasait le fichier directement.
Bon, ceci dit si la taille à ajouter au fichier est importante, on risque d'écraser le fichier sans pouvoir écrire la totalité de la nouvelle taille.
Question subsidiaire (naïve aussi) : où faut-il créer ce fichier temporaire ? Dans /tmp (perte de temps si /tmp n'est pas sur la même partition que le fichier de destination) ? Dans le même répertoire que le fichier de destination (plus logique mais problème de la partition pleine) ?