#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <ctype.h>
void main()
{
unsigned char buf[512];
int i,j;
int sector,drive;
if (absread(2,0,1,&buf)!=0)
{
printf("Error reading drive C");
exit(1);
}
for (i=0;i<512;i+=16)
{
printf("offset %04X:",i);
for (j=0;j<16;j++)
printf("%02X ",buf[i+j]);
printf(" ");
for (j=0;j<16;j++)
if (isprint(buf[i+j]))
printf("%c",buf[i+j]);
else
printf(".");
printf("\n");
}
}
위 코드는 C드라이브의 첫번째 섹터를 읽어서 프린트 하는 함수인데요..
이걸 컴파일하면 오류는 없는데 실행시 Error Reading drive C가 계속 뜹니다..
absread의 첫번째 인자로 0을 주면 A디스켓을 넣으라고 나오는데요...
지금 win98에서 tc3.0 for dos 로 컴파일 하고 있는데 ..absread를 꼭 사용해야 하는데..
이게 잘 안되네요..뭐가 문제인지 아시는분 계신가요?
|