/* Função para suprimir automaticamente as limas provisórias */
remove_temp_file()
{
int i=0;
for(i=0;i<=file_num;i++)
{
strcpy(filename,"TTPT");
itoa(i,temp,10);
strcat(filename,temp);
strcat(filename,file_extension);
remove(filename);
}
exit(1);
return 0;
}
Comentários na lógica e no coding do programa:
Neste programa bàsicamente nós seguimos as seguintes duas etapas para limpar o espaço unallocated do disco:
- Criar arquivos de dados provisórios automaticamente: Primeiramente nós criamos limas provisórias com os nomes originais e ter alguns dados neles até que o volume de disco esteja cheio com estes arquivos de dados provisórios. Fazendo isto, toda a área de dados unallocated da movimentação lógica é ocupada pelos dados das limas provisórias e todos os dados unallocated overwritten.
Para fazer isto, eu escolhi os nomes de limas provisórias no formato de TTPTxxxx.PTT, que os meios, os primeiros quatro caráteres das limas provisórias são TTPT e a extensão das limas é .PTT. É feita assim para fornecer as limas provisórias os nomes de arquivo originais.
Eu ajustei o tamanho máximo da única lima provisória, equivalente a aproximadamente 11.718 dados dos setores entretanto que você pode a definir de acordo com você. Eu escolhi o caráter de espaço “” (caráter de ASCII 32) encher os dados em limas provisórias. Os caráteres de qualquer modo aleatórios podem também ser usados em vez do espaço.
- Remover todas as limas provisórias: Quando a movimentação lógica está cheia com limas provisórias, indica que toda a área de dados unallocated overwritten agora. Todas as limas provisórias criadas pelo programa são removidas agora automaticamente. E o espaço para fora unallocated assim limpado é conseguido.
No coding do programa, o nome de arquivo da disposição de caráter armazena a lima - nome para gerar automaticamente limas provisórias, com nomes diferentes. O write_to_temp da função (nome de arquivo); enche a lima provisória até 11.718 nenhuma ocorrência de 10.000 setores na escrita especificada do grupo do amortecedor) dados equivalentes dos setores (porque não há com a ajuda de um dbuf do amortecedor dos dados de 40.000 bytes. o amortecedor de 50 dados das épocas é escrito em um momento de apressar-se acima da escrita. As limas provisórias estão criadas até que o volume de disco esteja cheio e erro da criação da lima ocorrer. A função remove_temp_file () remove toda a lima provisória, criada pelo programa. Nesta maneira todo o espaço unallocated é limpado para fora sem prejudicar os dados do volume de disco.
|