프로그램이 MBR의 백업을 만들 것을 쓰기:
/*MBR의 백업을 만드는 프로그램 */
#include <bios.h>
#include <stdio.h>
int main(void)
{
struct diskinfo_t dinfo; /* 디스크 매개변수의 정보를 보전되는 구조 */
int result;
int count=0;
char filename[80]; /* user가 주어진 파일 이름을 저장한다*/
static char dbuf[512]; /*512의 바이트의 자료 버퍼 */
FILE *fp;
dinfo.drive = 0x80; /* 첫번째 하드 디스크를 위한 드라이브 수*/
dinfo.head = 0; /* 디스크 맨 위 수 */
dinfo.track = 0; /* 대위 수 */
dinfo.sector = 1; /* 분야 수 */
dinfo.nsectors = 1; /* 분야 조사 */
dinfo.buffer = dbuf; /* 자료 버퍼 */
printf("\n MBR의 백업을 저장하기 위하여 파일 이름 및 경로에 들어가십시오 \n ");
gets(filename);
// MBR 백업을 저장하기 위하여 파일을 여십시오 \\
if((fp=fopen(filename,"wb"))==NULL)
{
printf("파일을 창조할 수 없고, 나가기 위하여 누르지 않는다 어떤 열쇠도…");
getch();
exit(0);
}
printf("하드 디스크 드라이브에서 읽는 것을 시도:\n");
////지정된 디스크 분야를 읽으십시오\\\\
result = _bios_disk(_DISK_READ, &dinfo);
if ((result & 0xff00) == 0)
{
printf("디스크는 하드 디스크 드라이브에서 읽었다: 성공.\n");
/// 파일에 MBR의 512의 바이트를 쓰십시오 \\\\
while(count<512)
{
fprintf(fp,"%c",dbuf[count] & 0xff );
count++;
}
fclose(fp);
}
else
printf("하드 디스크 드라이브를 읽을 수 없다, 상태 = 0x%02x\n", result);
return 0;
}
|