У меня есть программа, которая намеренно выполняет деление на ноль (и сохраняет результат в изменчивой переменной), чтобы при определенных обстоятельствах останавливаться. Однако я хотел бы иметь возможность отключить эту остановку, не меняя макрос, выполняющий деление на ноль.
Есть ли способ игнорировать это?
я пытался использовать
#include <signal.h>
...
int main(void) {
signal(SIGFPE, SIG_IGN);
...
}
но он все еще умирает с сообщением «Исключение с плавающей запятой (ядро сброшено)».
На самом деле я не использую значение, поэтому мне все равно, что присваивается переменной; 0, случайный, неопределенный...
РЕДАКТИРОВАТЬ: я знаю, что это не самый портативный, но он предназначен для встроенного устройства, которое работает во многих разных ОС. Действие остановки по умолчанию — деление на ноль; другие платформы требуют других приемов для принудительной перезагрузки, вызванной сторожевым таймером (например, бесконечный цикл с отключенными прерываниями). Для тестовой среды ПК (Linux) я хотел отключить остановку при делении на ноль, не полагаясь на такие вещи, как утверждение.