- •Void writechar(char ch)
- •Void far getarccoords(struct arccoordstype
- •Int far getbkcolor(void);
- •Itoa(bkcolor,bkname,10);
- •Int getc(file *stream);
- •Int main(void)
- •Int getchar(void);
- •Int main(void)
- •Int getche(void);
- •Itoa(color,colname,10);
- •Int getcurdir(int drive, char * direc);
- •Int da_year; /* текущий год */
- •Int main(void)
- •Void getdfree(unsigned char drive,
- •Int getdisk(void);
- •Int main(void)
- •If(!flag)
- •Void getfatd(struct fatinfo *dtable);
- •Void far getfillpattern(char far *pattern);
- •Int getftime(int handle, struct ftime * ftimep);
- •Int far getgraphmode(void)
- •Initgraph.
- •Void far getimage(int left, int top, int
- •0X3333 или 0x0f0f. Если же параметр linestyle в
- •Int far getmaxcolor(void);
- •Int far getmaxx(void);
- •Int far getmaxy(void);
- •Void far getmoderange(int graphdriver, int
- •Void far getpalette(struct palettetype far
- •Int far getpalettesize(void);
- •Int main(void)
- •Int main(void)
- •3.X можно использовать глобальную переменную
- •Void gettextinfo(struct text_info *r);
- •Int main(void)
- •Void var gettexsettings(struct
- •Void gettime(struct time * timep);
- •Int main(void)
- •Int far getx(void);
- •Int far gety(void);
- •Void far graphdefaults(void);
- •Void far _graphfreemem(void var
- •Void far _graphgetmem(unsigned size);
- •0 GrOk нет ошибок
- •0, Если необходимо игнорировать ошибку, 1, если
- •Void hardresume(int rescode);
- •0, Если необходимо игнорировать ошибку, 1, если
- •0, Если необходимо игнорировать ошибку, 1, если
- •Int heapcheck(void);
- •Int heapchecknode(void *node);
- •Int heapfillfree(unsigned int fillvalue);
- •Int heapwalk(struct heapinfo *hi);
- •Void highvideo(void);
- •Int main(void)
- •Initgraph загружает графический драйвер и
- •Initgraph как часть его драйвероопределяю-
0, Если необходимо игнорировать ошибку, 1, если
нужно повторить операцию и 2 для завершения прог-
раммы.
Возвращаемое Нет.
значение
Переносимость Функция уникальна для DOS.
Смотрите также hardresume, hardretn, peek, poke.
Пример:
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#define IGNORE 0
#define RETRY 1
#define ABORT 2
/* определим сообщения об ошибке для дисковода */
static char *err_msg[] = {"диск защищен от записи",
"неизвестное устройство",
"дисковод не готов",
"неизвестная команда",
"ошибка данных (CRC)",
"ошибка поиска",
"неизвестный тип носителя",
"ненайден сектор",
"в принтере нет бумаги",
"сбой при записи",
"ошибка при чтении",
"неустранимая ошибка",
-230-
"зарезервирован",
"зарезервирован",
"неверная смена диска"
};
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);
}
/* прагма warn -par исключае выдачу предупреждений о том, что
в подпрограмме не используются параметры errval,bp и si */
#pragma warn -par
int handler(int errval, int ax, int bp, int si)
{
static char msg[80];
unsigned di;
int drive;
int errno;
di = _DI;
/* если это не ошибка диска, то проблемы возникли у
другого устр-ва */
if(ax<0)
{
/* сообщить об ошибке */
error_win("Ошибка устройства");
/* и вернуть управление программе */
hardretn(ABORT);
}
/* иначе это ошибка диска */
drive = ax&0x00ff;
errno = di & 0xff;
/* сообщить, что за ошибка */
sprintf(msg,"Ошибка: %s на дисководе %c\r\nA)bort, R)etry,
I)gnore:",err_msg[errno],'A'+drive);
/* вернуть управление программе */
hardresume(error_win(msg));
return ABORT;
-231-
}
#pragma warn +par
int main(void)
{
/* установить программу обработки прерывания */
harderr(handler);
printf("Make sure there is no disk in drive A:\n");
printf("Press a key when ready...\n");
getch();
printf("Attempting to access A:\n);
fopen("A:ANY.FIL","r");
return 0;
}
hardresume
Функция Функция обработки ошибок электронного оборудова-
ния.
Синтаксис #include<dos.h>