Onde estão “data da última modificação” e “data do último acesso” salvas?

4

O título diz tudo. Onde as datas mencionadas (e outros dados do arquivo meta ) foram salvas?

Eles são parte do arquivo ou são separados? Se eu tiver um arquivo, modifique-o para que o conteúdo permaneça o mesmo (exclua uma letra e grave-a novamente) ... alterando a data de modificação. Esses dois arquivos resultantes são exatamente os mesmos, quanto ao conteúdo (binário mesmo)?

    
por Rook 30.11.2011 / 01:24

1 resposta

7

Ambos os registros de data e hora são separados do conteúdo do arquivo. Eles são mantidos junto com outros metadados no inode (a maioria dos sistemas de arquivos Unix) ou o equivalente no Windows - a entrada do arquivo no " tabela de arquivos mestre ". Em geral, isso é muito específico para o sistema de arquivos sendo usado - FAT e ext4 e btrfs e NTFS fazem isso de maneira muito diferente.

A hora da modificação no Windows é atualizada ao fechar o arquivo, se pelo menos um byte tiver sido modificado. Se os novos dados são iguais ou diferentes, não importa, desde que WriteFile () ou uma função relacionada tenha sido chamada; o novo conteúdo pode até ser uma correspondência exata.

O tempo de acesso é atualizado quando o arquivo é fechado depois de ter sido aberto para leitura ou gravação - mesmo que não tenha sido modificado de forma alguma. (Isso exclui as leituras de metadados, já que os metadados estão fora do arquivo. No Windows, os programas de backup também podem solicitar que o atime permaneça inalterado.) Geralmente há restrições adicionais sobre quando esse horário é atualizado: por exemplo, o tempo de modificação (Linux relatime ), ou somente se o atime antigo era mais de uma hora antes (Windows mais antigo), ou não atualizado em todos os (Windows mais recente). / p>     

por 30.11.2011 / 01:41

Tags