CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
disable
disable
Функция Запрещает прерывания. Синтаксис #include <dos.h> void disable(void); Файл, содержащий dos.h прототип Описание Данная макрокоманда разработана с целью обеспечения программистов гибким средством контроля над прерываниями на физическом уровне. Макрокоманда disable делает прерывания невозможными. Разрешено только прерывание NMI с внешнего устройства (немаскируемое прерывание). Возвращаемое Нет. значение Переносимость Данная макрокоманда уникальна для архитектуры 8086. Смотрите также getvect, enable. Пример: /* Замечание. Это программа обработки прерывания. Вы не cможете откомпилировать эту программу с включенной проверкой переполнения стека (Test Stack Overflow - On) и получить правильно работающую программу. */ #include<stdio.h> #include<dos.h> #include<conio.h> #define INTR 0X1C /* прерывание таймера */ void interrupt (*oldhandler)(void); int count=0; void interrupt handler(void) { /* запрет других прерываний во время обработки этого */ disable(); /* увеличение глобального счетчика */ count++; /* разрешение прерываний после обработки */ enable(); /* вызов старой программы обработки */ oldhandler(); } int main(void) { /* сохранить старый вектор */ oldhandler = getvect(INTR); /* записать новый вектор */ setvect(INTR,handler); /* цикл, пока счетчик не достигнет 20 */ while(count < 20) printf("счетчик = %d\n",count); /* восстановить старый вектор */ setvect(INTR,oldhandler); return 0; }