• [^] # Re: Forme canonique d'écriture de fichier

    Posté par . En réponse à la dépêche Le noyau Linux 2.6.30 est disponible. Évalué à 5.

    À noter que le rename() final effectue deux opérations d'un coup :
    1 - effacer le fichier MonFichier
    2 - renommer
    Même si 1 et 2 sont atomiques (comme dit plus haut, vu du système, si rien ne crashe), l'opération 1 peut prendre un certain temps selon la taille du fichier et le système de fichiers.


    Non, il n'y a pas deux étapes, c'est bien un rename (man 2 rename) qui est effectué et le système te garanti (à quelques cas particuliers près semble-t-il) l'atomicité de l'opération. Ce n'est qu'après le rename que le système de fichier peut éventuellement constater que les données pointées précédemment par le nom de destination n'ont plus aucun lien physique et les libérer.