#include #include #include #define _GNU_SOURCE #include #include void fpehandler(int sig_num) { signal(SIGFPE, fpehandler); printf("SIGFPE: %d floating point exception occured, exiting.\n",sig_num); abort(); } int main(void) { int feenableexcept(); feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW); signal(SIGFPE, fpehandler); float i = 0; float f=0.0; while ( i<200.0 ) { //f=1.0/(100.0-i); f=sqrt(100.0-i); printf("%e %e \n",i, f); i = i+1; } return 0; }