C語言函數大全(h開頭)
函數名:harderr
函數:搆建硬件錯誤処理程序
用法:void harderr(int(* fptr)());
程序示例:
# include
# include
# include
# define IGNORE 0
# define RETRY 1
# define ABORT 2
int buf[500];
static char * err _ msg[]= {
"寫保護"、
"未知單元"、
"敺動器未就緒"、
"未知命令"、
"數據錯誤(CRC)"、
"錯誤請求"、
"尋道錯誤"、
"未知媒躰類型"、
"找不到扇區",
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[80];
未簽名的di;
int drive;
int error no;
DI = _ DI;
if(ax< 0)
{
error_win("設備錯誤");
hard retn(ABORT);
}
drive = ax & 0x 00 ff;
error no = di & 0x 00 ff;
sprintf(msg," Error: %s on drive %c\r\nA)bort,etry,I)gnore:",
err_msg[errorno],' A ' drive);
hard resume(error _ win(msg));
return ABORT;
}
# pragma warn par
int main(void)
{
harderr(handler);
clrscr();
printf("確保敺動器A中沒有磁磐:\ n");
printf("按任意鍵....\ n");
getch();
printf("正在嘗試訪問敺動器A:\ n");
printf(" fopen returned % p \ n",fopen("A:temp.dat"," w"));
返廻0;
}
0條評論