프로그램 코딩에 대하여 코멘트:
프로그램의 코딩에서는, 각 단계는 디스크 읽기 작업 동안에 잘못된 섹터 에 의해 생성된 과실을 취급하고 이미지 파일 의 크기를 유지하기 위하여 우리가 이용하고 있는 자료 버퍼 dbuf2 [512] 를 제외하고 이전 프로그램 에서 과 같다.
이것을 해서, 우리는 우리가 디스크 심상의 정확도를 유지한 그래야 우리가 잘못된 섹터에서 읽지 못하고 지금 512의 바이트의 가짜 정보를 쓰고 있는 정보의 공간을 채우고 있다.
파일에서 신선한 플로피의 육체적인 표면에 자료를 풀칠하십시오:
이 단계에서는, 우리는 우리가 파일에 그것을 베낀지 어느 것이라고에 의하여 신선한 플로피의 육체적인 표면, 분야에 의하여 분야에 이전 프로그램에 의해 파일에서, 같은 방식으로 저장된 자료를 풀칠한다.
프로그램은 뒤에 오는 주요 단계로 진행한다:
- 우리가 읽을 가치가 없는 플로피의 지상 자료를 임시적으로 저장한 파일을 여십시오.
- INT 13H의 리셋 기능 00H에 의해 디스크 체계를 제대로 초기화하십시오.
- 파일에서 신선한 플로피의 분야에 정보를 쓰십시오.
- 파일에서 신선한 플로피의 분야에 정보를 쓰십시오.
프로그램 원시 코드는 아래에 주어졌다. 저희가 그것이 어떻게 작동하는지 시험하게 하십시오:
/* 이전 프로그램에 의해 창조되는 파일에서 신선한 플로피의 표면의 분야에 자료를 쓰는 프로그램 */
#include <bios.h>
#include <stdio.h>
void main(void)
{
int head,track;
union REGS regs;
int result,i,sector;
int count =0;
char filename[80];
struct diskinfo_t dinfo;
static char dbuf[512];
FILE *fp;
clrscr();
printf("\n 자료를 임시적으로 저장하기 위하여 경로를 가진 파일의 이름을 입력하십시오\n");
gets(filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("파일을 창조할 수 없고, 나가기 위하여 어떤 열쇠도 누르지 않는다");
getch();
exit(1);
}
|