Puisque vous parlez de "sauvegarder le fichier", le fichier ne sera pas édité sur place sur le disque.
Avec un fichier dans un système de fichiers habituel, il y a deux choses à considérer. Il y a l'entrée de répertoire, puis les données de fichier réelles quelque part sur le disque.
Lorsque vous éditez un fichier dans un éditeur normal, les données du fichier sont chargées dans la RAM et toute édition ne se produit que sur cette copie des données. Ensuite, lorsque vous enregistrez le fichier, il existe essentiellement deux options:
Option 1: le fichier d'origine est renommé , ainsi l'entrée de répertoire d'origine et les données d'origine resteront sur le disque. Le changement de nom peut par exemple remplacer le suffixe de fichier par .bak
(en supprimant généralement tout .bak
fichier précédent ). Ensuite, un nouveau fichier est créé et les données de la mémoire y sont écrites.
Option 2: l'entrée de répertoire d'origine est modifiée pour que le fichier soit tronqué à une longueur de 0. La zone du disque utilisée pour les données de fichier sera marquée comme étant inutilisée, mais l'ancien contenu du fichier restera sur le disque jusqu'à ce qu'il soit écrasé. Ensuite, de nouvelles données sont écrites. Dans ce cas, l'entrée de répertoire est conservée, seules les données pointées sont modifiées.
Il existe quelques variantes possibles, une commune étant, les données éditées sont d'abord stockées dans un fichier temporaire, donc si votre ordinateur tombe en panne à ce stade, le fichier d'origine ne sera probablement pas endommagé. Ensuite, le fichier d'origine est supprimé et le nouveau fichier renommé avec le nom correct. Ou bien, le fichier original pourrait simplement être supprimé avant d'écrire le nouveau.
Votre théorie 1 est donc proche de ce que font la plupart des éditeurs.
Ensuite, il y a des cas spéciaux. Le plus évident est un éditeur de disque, qui permet de lire et de réécrire des octets directement sur le disque. Un autre peut être un fichier de base de données, où les enregistrements peuvent avoir une taille fixe, il est donc facile d'écraser un enregistrement. Mais les données ne peuvent pas être ajoutées au milieu d'un fichier et, par conséquent, en modifiant des fichiers texte ou tout autre fichier dans lequel la longueur des données au milieu du fichier change généralement, ces astuces ne peuvent pas vraiment être utilisées.
Votre théorie 2 est donc possible dans certains cas, mais les éditeurs de texte normaux et autres ne le font pas.