#include #include #include jmp_buf buf; void catchSigSegV( int sig ) { longjmp(buf, 1); } int *ptr = 0; int main(void) { volatile int v; signal(SIGSEGV, catchSigSegV); if (!setjmp(buf)) { puts("Ready to catch"); v = *ptr; puts("Bad"); } else puts("Ok"); return 0; }