
2、错误提示是)没有配对或者没有语句结束符。自己根据行号提示进行修改。冲渣
3、你那个代码,应该 是直接复制的别人的拿者。 自己最好是按源码方式 进行复制 。
DeviceIoControl读写游培改分区表biosdisk 读写磁盘扇区
外+C语言里的f函数。
#include<process.h>
#include<ctype.h>
#include<bios.h>
#include<stdio.h>
void init_mbr(),help(),restor_mbr(),backup_mbr(),display_mbr()
main()
{
char ch
for()
{
printf("-")
ch=getchar()
switch(tolower(ch))
{
case'd':display_mbr()
break
case'b':backup_mbr()
break
case'r':restor_mbr()
break
case'?':help()
break
case'i':init_mbr()
break
case'q':exit(0)
}
getchar()
}
}
void display_mbr()
{
int result
register int i
unsigned char buffer[512]
result=biosdisk(4,0,0,0,1,1,buffer)
result&=0x02
if(result)
{
biosdisk(2,0,0,0,1,1,buffer)
for(i=0i<512i++)
{
if(!(i%8))
{
printf(" ")
if(!(i%16))
{
printf("\n")
printf("%04x: ",i)
}
}
printf("%02x ",buffer)
}
}
else
printf("mbr not ready!")
}
void backup_mbr()
{
int result
FILE *fp
unsigned char buffer[512]
biosdisk(2,0,0,0,1,1,buffer)
if((fp=fopen("d:\\backup.dpt","wb"))==NULL)
{
printf("cannot creat file\n")
exit(1)
}
else
{
result=fwrite(buffer,sizeof(buffer),1,fp)
(result)?(printf("中裤mbr backup finished"))printf("mbr backup failed"))
}
fclose(fp)
}
void restor_mbr()
{
int result
FILE *fp
unsigned char buffer[512]
if((fp=fopen("d:\\backup.dpt","rb"))==NULL)
{
printf("waring! not find the backup file!\n")
exit(1)
}
else
{
fread(buffer,sizeof(buffer),1,fp)
result=biosdisk(3,0,0,0,1,1,buffer)
(result)?(printf("mbr restore finished"))printf("mbr restore fail"))
}
fclose(fp)
}
void help()
{
printf("Commands may be abbrebiated. Supported commands are:\n\n")
printf("d display the mbr datas\n")
printf("b backup the mbr to d:\backup.dpt\n")
printf("神判r restore the mbr from d:\backup.dpt\n")
printf("i init the mbr to unuse\n")
printf("q exit the program\n")
printf("? display the help list\n")
}
void init_mbr()
{
int result
unsigned char buffer[512]
FILE *fp
int i
for(i=0i<512i++)
{
buffer=0
}
result=biosdisk(3,0,0,0,1,1,buffer)
(result)?(printf("mbr init finished"))printf("mbr init&nb
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)