저희가, 저장된 이 정보를 어떤 파일든지 루트 디렉토리 정보 덕분에 1.44Mb에서, 3개의 ½ 인치 플러피 디스크의 자료를 닦기 위하여 시도하게 하십시오. 플러피 디스크에 있는 자료가 파편이 되지 않는다고 추정, 다음 닦음에게 그것의 자료 영역에서 지정된 파일의 자료가 주어지는 프로그램:
/* 플러피 디스크에 있는 지정된 파일의 자료 영역을 닦는 프로그램*/
#include<stdio.h>
#include<dos.h>
///// 루트 디렉토리에 있는 파일 입장의 32의 바이트를 읽는 구조 \\\\\
struct root
{
unsigned char filename[8]; /* 8개의 바이트의 파일 이름 기입 항목 */
unsigned char extension[3]; /* 3개의 바이트의 파일의 연장 */
unsigned char attribute; /* 파일 속성 바이트 */
unsigned char reserved[10]; /* 보류하는 바이트 10*/
unsigned int time; /* 시간, 2개의 바이트 */
unsigned int date; /* 날짜, 2개의 바이트 */
unsigned int starting_cluster;/* 파일의 송이 시작, 2개의 바이트 */
unsigned long file_size; /* 바이트, 4개의 바이트에 있는 파일 사이즈 */
};
/* 모든 루트 디렉토리 입장을 읽는 이것을 가지고 가야 한다*/
//struct 뿌리 입장 [224];
/* 루트 디렉토리의 1개의 분야에 있는 모든 16의 파일 입장을 읽는 구조 */
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]; /* 파일의 자료 영역을 밖으로 닦는 사용될 자료 버퍼 */
clrscr();
result= absread(0x00, 1, 19, &one); /*절대 분야 19를 읽으십시오 (루트 디렉토리의 첫번째 분야) */
if (result != 0)
{
perror("독서 분야에 있는 과실은 나가기 위하여, 누른다 어떤 열쇠든지…");
getch();
exit(1);
}
|