지정된 파일을 재기하기 위하여는, 기능은 () 산출하고 기능 안에 () 불린다 통합한다. 기능의 코딩은 () 아래와 같이 주어졌다 산출한다:
/* 회복을 위한 CHS Geomatry를 산출하는 기능 */
void calculate(unsigned int start,unsigned int *cylinder,
unsigned int *head,unsigned int *sector)
{
unsigned int temp;
*cylinder=0;
*head=1;
*sector=14;
if(start<5)
*sector=14+start;
else
{
temp= (start-4)/18;
if(temp>0)
{
if(temp%2==0)
*head=0;
else
*head=1;
*cylinder+=1+temp/2;
}
else
{
*head=0;
*cylinder=1;
}
*sector=(start-4)%18;
}
/// 재기될 파일의 CHS를 표시하십시오 \\\
gotoxy(10,23);
cprintf("Cylinder = %u, Head = %u, Sector = %u",
*cylinder,*head,*sector);
}
코딩에 대하여 코멘트:
기능은 () 재기될 파일을 위한 실린더의, 맨 위 및 분야 정보를 산출하기 위한 것이다 산출한다. 계산 후에 실린더의, 맨 위 및 분야 수는 스크린에 표시된다.
기능을 위한 코딩은 () 아래와 같이 주어졌다 통합한다:
/* 파일을 통합하고 지정된 경로에 재기한 파일을 저장하고 이름을 신청하십시오 */
void integrate(long unsigned int size,
unsigned int cylinder,
unsigned int head,
unsigned int sector)
{
void clear_the_line(unsigned int);
/* 과실을 위한 분야를 확인하는 기능 */
int verify_the_sector(unsigned int, unsigned int,
unsigned int);
int status;
char buf[512],*Filename_with_path;
struct diskinfo_t dinfo;
unsigned int result;
FILE *fp;
unsigned int left,i;
unsigned int sec;
|