#include #include #include void signal_handler(int signalValue) { cout << endl << "Interrupt signal (" << signalValue << ") received." << endl; exit(1); } long triangle(long n); int main() { //signal(EXCEPTION_STACK_OVERFLOW, signal_handler); for (unsigned long j = 0; j != 40; j++) signal(j, signal_handler); //signal(SIGSEGV, signal_handler); //signal(SIGABRT, signal_handler); //signal(SIGILL, signal_handler); //signal(SIGTERM, signal_handler); for (unsigned long i = 0; i != 60; i++) { cout << "triangle(" << i << ") = " << triangle(i) << endl; } //raise(SIGILL); cout << "triangle(10000000) = " << triangle(10000000) << endl; return 0; } long triangle(long n) { return n <= 0ul ? 0ul : n + triangle(n - 1); }