CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
getvect
getvect
Функция Получает вектор прерывания. Синтаксис #include<dos.h> void interrupt(*getvect(int intr_num))(); Файл, содержащий dos.h прототип Описание Любой из семейства процессоров 8086 содержит набор векторов прерываний, пронумерованных от 0 до 255. 4-х байтовое значение каждого вектора есть адрес, по которому расположена функция обработки прерывания. Функция getvect считывает значение вектора с номером intr_num и интерпретирует прочитанное значение, как "дальний" указатель (с атрибутом "far") на некоторую функцию прерывания. Параметр intr_num должен иметь значение от 0 до 255. Возвращаемое Функция getvect возвращает 4-х байтовое значение, значение хранящееся в векторе прерывания с номером intr_num. Переносимость Функция уникальна для DOS. Смотрите также disable, enable, geninterrupt, setvect. Пример #include<stdio.h> #include<dos.h> void interrupt get_out(); /* прототип ф-ции обработки прерывания */ void interrupt (*oldfunc)(); /* указатель на прерывание */ int looping = 1; int main(void) { puts("Нажмите <Shift><Ptr Sc> для завершения"); /* сохранить старый вектор */ oldfunc = getvect(5); /* установить новый вектор */ setvect(5,get_out) /* ничего не делать */ while(looping); /* восстановить старый вектор */ setvect(5,oldfunc); puts("Успешно"); return 0; } void interrupt get_out() { looping = 0; /* изменить значение глобальной переменной */ }