Объектно-ориентированное программирование: учебное пособие / В. Н. Казагачев.

// установка сигнала исключения, для операций с плавающей точкой. Эти исключения могут обрабатываться с использованием функции signalQ. Она связывает функцию-обработчик с сигналом. Также она может использоваться для того, чтобы игнорировать сигнал или повторно устанавливать действие но умолчанию. signal(SIGABRT,ту abort); / / вызвать myabortQ, если установлен SIGABRT signal(SIGABRT,SIG_DFL); / / действие по умолчанию, если установлен SIGABRT signal(SIGFPE,SIG_IGN); //игнорировать SIGFPE Это называется установкой обработчика. Она заменяет обычный системный обработчик, определяемый пользователем. Пример. ИОбработка прерывания с использованием signal.Һ //include <signal.h> //include <time.h> void cntrl_c_handler(int sig); main() { int i=0,j; cout « "‘Count to J million, Enter j: cin » j ; j*=T000000; signal(SIGINT, cntrl c handler); // Функция обработчик связывается с прерыванием // SIGINT. После обнаружения следующего прерывания вместо действия системы // по умолчанию система вызывает cn tr lch and le r cout « (double)clock()/CLOCKS_PER_SEC « “start time\n”; // while) 1) { j++; ІДІ >j) { cout « (double)clock()/CLOCKS PER SEC « “ end loop\n”; cout« “HIT “ « j / 1000000 « “MILLION” « endl; raise(SIGINT); /7 Сигнал прерывания устанавливается явным вызовом. // Неявно вызывается cntrl c handler cout « “\nENter j: “; cin » j; j*= 1000000; i=0;

RkJQdWJsaXNoZXIy MTExODQxMg==