Proviamo queste informazioni per pulire i dati di tutta la lima immagazzinata in 1.44Mb, dischetto di pollice dei 3 ½, con l'aiuto delle informazioni dell'indice di radice. Supponendo che i dati nel dischetto non sono spezzettati, il programma dato a wipes seguenti i dati della lima specificata dalla relativa zona di dati:
/* Programma per pulire la zona di dati della lima specificata in dischetto */
#include<stdio.h>
#include<dos.h>
///// Struttura per leggere 32 byte dell'entrata della lima nell'indice di radice \\\\\
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 */
};
/* Dovrebbe essere preso questo per leggere tutte le entrate di indice della radice */
//entrata della radice dello struct [224];
/* Struttura per leggere tutte e 16 le entrate della lima in un settore dell'indice di radice */
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]; /* Data Buffer to be used to wipe
out the data Area of file */
clrscr();
result= absread(0x00, 1, 19, &one); /* Read Absolute Sector
19 (First Sector of Root Directory) */
if (result != 0)
{
perror("Error in Reading Sector, Press any key to
Exit...");
getch();
exit(1);
}
|