#include
#include
#include
#include
#define MAXBUF 1024
#define SECNUM 4385
#define ORGSEC 39
typedef unsigned char byte;
int main() {
FILE *ofstream;
// buffer
byte buffer[1024];
unsigned int cur_sect = ORGSEC;
unsigned int nsize = 0;
ofstream = fopen("C:\\int86.fat","wb");
if(!ofstream) {
printf("Cannot open file!\n");
return 1;
}
while(cur_sect - ORGSEC < SECNUM) {
if(cur_sect - ORGSEC + MAXBUF < SECNUM) {
biosdisk(2,0x81,1,0,cur_sect,MAXBUF,buffer);
cur_sect += MAXBUF;
nsize = MAXBUF;
}
else {
biosdisk(2,0x81,1,0,cur_sect,SECNUM - (cur_sect - ORGSEC),buffer);
cur_sect = ORGSEC + SECNUM;
nsize = SECNUM - (cur_sect - ORGSEC);
}
fwrite(buffer,sizeof(byte),nsize,ofstream);
memset(buffer,'\0',MAXBUF);
}
fclose(ofstream);
printf("Back-up completed!\n");
return 0;
}
我似乎明白你的意思了,我帮你重新写了一份,不知道是不是你要的结果,可能明天晚上给你解释,我明天一早有点事情,今天早睡了,不好意思。
[此贴子已经被作者于2006-6-25 23:01:25编辑过]