On a compris que :
open("MonFichier.temp")
write("MonFichier.temp")
fsync("MonFichier.temp")
close("MonFichier.temp")
rename("MonFichier.temp", "MonFichier").
devait être utilisé. Et si c'est lent il faut le mettre dans un thread.
Par contre, que faut-il faire pour une modification de fichier ? Comment avoir l'atomicité ? C'est fournis de base par le FS ou pas ?
En gros, si j'écris sur une partie d'un fichier, est-ce que j'aurais juste une partie modifiée en cas de crash ? Est-ce que mon fichier sera corrompu ?
# Forme canonique d'écriture de fichier
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le noyau Linux 2.6.30 est disponible. Évalué à 5.
open("MonFichier.temp")
write("MonFichier.temp")
fsync("MonFichier.temp")
close("MonFichier.temp")
rename("MonFichier.temp", "MonFichier").
devait être utilisé. Et si c'est lent il faut le mettre dans un thread.
Par contre, que faut-il faire pour une modification de fichier ? Comment avoir l'atomicité ? C'est fournis de base par le FS ou pas ?
En gros, si j'écris sur une partie d'un fichier, est-ce que j'aurais juste une partie modifiée en cas de crash ? Est-ce que mon fichier sera corrompu ?
Qu'est-ce que la bonne méthode ?
"La première sécurité est la liberté"