最佳答案:
harderr,是建立一个硬件错误处理程序,程序例是trap disk errors and prompt。
详情介绍
harderr,是建立一个硬件错误处理程序,程序例是trap disk errors and prompt。

- 中文名
- harderr
- 功 能:
- 建立一个硬件错误处理程序
- 用 法:
- void harderr(int (*fptr)()
- 程序例:
- trap disk errors and prompt
函数名: harderr
功 能: 建立一个硬件错误处理程序
用 法: void harderr(int (*fptr)());
程序例:
#include
#include
#include
#define IGNORE 0
#define RETRY 1
#define ABORT 2
int buf;
static char *err_msg = {
"write protect",
"unknown unit",
"drive not ready",
"unknown command",
"data error (CRC)",
"bad request",
"seek error",
"unknown media type",
"sector not found",
"printer out of paper",
"write fault",
"read fault",
"general failure",
"reserved",
"reserved",
"invalid disk change"
};
error_win(char *msg)
{
int retval;
cputs(msg);
while(1)
{
retval= getch();
if (retval == 'a' || retval == 'A')
{
retval = ABORT;
break;
}
if (retval == 'r' || retval == 'R')
{

retval = RETRY;
break;
}
if (retval == 'i' || retval == 'I')
{
retval = IGNORE;
break;
}
}
return(retval);
}
#pragma warn -par
int handler(int errval,int ax,int bp,int si)
{
static char msg;
unsigned di;
int drive;
int errorno;
di= _DI;
if (ax < 0)
{
error_win("Device error");
hardretn(ABORT);
}
drive = ax & 0x00FF;
errorno = di & 0x00FF;
sprintf(msg, "Error: %s on drive %crnA)bort, R)etry, I)gnore: ",
err_msg, 'A' + drive);
hardresume(error_win(msg));
return ABORT;
}
#pragma warn +par
int main(void)
{
harderr(handler);
clrscr();
printf("Make sure there is no disk in drive A:n");
printf("Press any key ....n");

getch();
printf("Trying to access drive A:n");
printf("fopen returned %pn",fopen("A:temp.dat", "w"));
return 0;
}
免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报
举报