#define _POSIX_C_SOURCE 200112L #include #include #include #include #include #include #include #include #include #include jmp_buf etiquette; void f(int sig) { printf("Signal %d capté\n", sig); longjmp(etiquette, 50); } int main(int argc, char **argv) { int x = 0; struct sigaction a, old; a.sa_handler = f; a.sa_flags = 0; sigemptyset(&a.sa_mask); sigaction(SIGFPE, &a, &old); if (setjmp(etiquette) == 0) printf("%d\n", 5/x); else printf("Retour du handler f\n"); return 0; }