Como você está falando sobre "salvar o arquivo", o arquivo não será editado no local no disco.
Com um arquivo em um sistema de arquivos usual, há duas coisas a considerar. Existe a entrada do diretório e os dados reais do arquivo em algum lugar do disco.
Quando você edita um arquivo em um editor normal, ele carrega os dados do arquivo na RAM e qualquer edição acontece nessa cópia dos dados. Então, quando você salva o arquivo, existem basicamente duas opções:
Opção 1: o arquivo original é renomeado , para que a entrada do diretório original e os dados originais permaneçam no disco. A renomeação pode, por exemplo, alterar o sufixo do arquivo para .bak
(removendo qualquer .bak
arquivo anterior , geralmente). Em seguida, um novo arquivo é criado e os dados da memória são gravados lá.
Opção 2: a entrada do diretório original é modificada para que o arquivo seja truncado no tamanho 0. A área no disco usada para os dados do arquivo será marcada como não utilizada, mas o conteúdo antigo do arquivo permanecerá no disco até que sejam substituídos. Em seguida, novos dados são gravados. Nesse caso, a entrada do diretório permanece, apenas os dados para os quais aponta são alterados.
Existem algumas variações possíveis, sendo uma comum, os dados editados são armazenados primeiro em arquivos temporários; portanto, se o computador travar nesse momento, o arquivo original provavelmente não será danificado. Em seguida, o arquivo original é excluído e o novo arquivo renomeado com o nome correto. Ou, o arquivo original pode ser excluído antes de escrever o novo.
Portanto, sua teoria 1 está próxima do que a maioria dos editores faz.
Depois, há casos especiais. O mais óbvio é um editor de disco, que permite ler e substituir bytes diretamente no disco. Outro pode ser um arquivo de banco de dados, em que os registros podem ter tamanho fixo, por isso é fácil substituir apenas um registro. Mas os dados não podem ser anexados no meio de um arquivo e, portanto, editando arquivos de texto ou quaisquer outros arquivos em que o comprimento dos dados no meio do arquivo geralmente muda, esses truques não podem realmente ser usados.
Portanto, sua teoria 2 é possível em alguns casos, mas editores de texto normais e outros não o fazem.