ARQUIVO TEM FIM ?

CASPEREARK 07/10/2006 10:52:02
#176294
Resposta escolhida
um arquivo é um recurso lógico e se assemelha muito a uma váriavel por exemplo.

Todo sistema de arquivo, seja qual for o sistema operacional, tem uma área ou uma tabela, onde tem as informações de COMEÇO e FIM do arquivo, usando um sistema de arquivos hipotético é um troço mais ou menos assim:

arquivo: teste.txt
inicio: 18756
fim: 18806

levando em consideração que cada 1 posição é um byte, nosso arquivo teste.txt tem 50 bytes.

Se eu abrir este arquivo, e adicionar ou remover mais 30 bytes, é o mesmo que eu der um comando Redim numa váriavel ou vetor, o S.O irá realocar, em caso de adição ele irá colocar o 30 bytes adicionados depois do ultimo byte do aquivo (em sistemas como o FAT e o NTFS, nem sempre é do lado, mas aí a tabela tem entradas especificas) e depois irá incrementar 30 ao valor fim de 18806 que vai pra 18856. Se for pra remover ele apenas decrementa 30 de 18756 pra 18736.

Pegando o exemplo de adição,da proxima vez que o programa for ler o arquivo, o SO irá ver que o arquivo está entre 18756 á 18856, tudo que estiver neste interválo será carregado na área de dados na RAM e passado ao programa.

Esse byte binário de marcação de fim de arquivo,a priori não existe, mas vc como desenvolvedor ao criar seu tipo de arquivo mais sofisticados do que texto, com certeza vai usar um código hash/criptografia ou de compactação dos dados, aí sim, é necessário ter um cabeçalho e um rodapé para que o algoritmo saiba o que fazer!

Os arquivos executáveis do windows por exemplo, tem este cabeçalho e rodapé, tudo que estiver entre eles, é o programa em si, dentro deste interválo tem subdivisões, onde estão o código bruto do programa, as bibliotecas linkadas e outras instruções asm. No cabeçalho está as instruções em qual versão do windows o mesmo irá rodar e quais bibliotecas do sistema (dlls e ocxs ou o .net framework) o programa vai usar.No fim do rodapé, existe um hash em CRC32, o SO verifica o hash do programa e compara com o hash do rodapé. Caso seja falso, o Windows irá dar o erro "arquivo corrompido". E depois do rodapé, opcionalmente mas quase o obrigatório, o arquivo de recursos (*.res) que vem com o icone do programa, com as informações do programa e outros como tabelas de linguagens, imagens, musicas e qualquer outra coisa.

Boa Sorte!
Página 2 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas