//---------------------------------------------------------------- // signal3.cpp // // This program will attempt to dereference a null pointer, // but beforehand it installs a signal-handler for SIGSEGV. // Now the signal-handler will 'exit' rather than 'return'. // // compile-and-link using: $ g++ signal3.cpp -o signal3 // // programmer: ALLAN CRUSE // written on: 20 MAR 2006 //---------------------------------------------------------------- #include // for printf() #include // for signal() #include // for exit() void upon_signal( int signo ) { printf( "\nCaught signal number %d \n\n", signo ); exit( signo ); } int main( int argc, char *argv[] ) { signal( SIGSEGV, upon_signal ); int *ptr = NULL; int x = *ptr; printf( "\nx = %08X \n\n", x ); }