Deixar-nos tentar esta informação limpar os dados de toda a lima armazenada em 1.44Mb, disco flexível da polegada de 3 ½, com a ajuda da informação do diretório de raiz. Supondo que os dados no disco flexível não estão fragmentados, o programa dado wipes seguintes os dados da lima especificada de sua área de dados:
/* Programa para limpar a área de dados de lima especificada no disco flexível */
#include<stdio.h>
#include<dos.h>
///// Estrutura para ler 32 bytes da entrada da lima no diretório de raiz \\\\\
struct root
{
unsigned char filename[8]; /* File name Entry of
8 Bytes */
unsigned char extension[3]; /* Extension of File of
3 Bytes */
unsigned char attribute; /* File Attribute Byte */
unsigned char reserved[10]; /* Reserved Bytes 10 */
unsigned int time; /* Time, 2 Bytes */
unsigned int date; /* Date, 2 Bytes */
unsigned int starting_cluster;/* Starting Cluster of File,
2 Bytes */
unsigned long file_size; /* File Size in Bytes,
4 Bytes */
};
/* Deve ser feito exame disto para ler todas as entradas de diretório da raiz */
//entrada da raiz do struct [224];
/* Estrutura para ler todas as 16 entradas da lima em um setor do diretório de raiz */
struct one_root_sector
{
struct root entry[16];
};
struct one_root_sector one;
void main()
{
int result, i, num_sectors,j;
char wipe_buf[512]; /* Os dados protegem para ser usados limpar para fora a área de dados de lima */
clrscr();
result= absread(0x00, 1, 19, &one); /*Ler o setor absoluto 19 (o primeiro setor do diretório de raiz) */
if (result != 0)
{
perror("Error in Reading Sector, Press any key to
Exit...");
getch();
exit(1);
}
|