/
rokhin
/
Small_test_programs_cpp
Обзор
Документация
Войти
/
rokhin
/
Small_test_programs_cpp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
exceptions_try_except_Statement.cpp
31 строка
738 B
sergeyrokhin
Начало
03 фев 2025, 13:36
03 фев 2025, 13:36
e354b68
Код
Авторство
О чём код?
#include <csetjmp> #include <csignal> #include <cstring> #include <iostream> jmp_buf fpe; void handler(int signum) { longjmp(fpe, 1); } int main() { volatile int i, j; for(i = 0; i < 10; i++) { struct sigaction act; struct sigaction oldact; memset(&act, 0, sizeof(act)); act.sa_handler = handler; act.sa_flags = SA_NODEFER | SA_NOMASK; sigaction(SIGFPE, &act, &oldact); if (0 == setjmp(fpe)) { std::cout << "before divide" << std::endl; j = i / 0; sigaction(SIGFPE, &oldact, &act); } else { std::cout << "after longjmp" << std::endl; sigaction(SIGFPE, &oldact, &act); } } return 0; }