/* signal1.c Started by Jeff Ondich on 3/26/96 Last modified 3/26/96 This program gives a simple example of how a process can catch a signal. Here, SIGINT signals (typically generated by the user hitting CTL-C) are caught. */ #include #include void interrupt_handler( int ); void main() { long i; /* The initial handler for the SIGINT signal is assuredly the default, so confusion will not reign */ if( signal(SIGINT,interrupt_handler) != SIG_DFL ) fprintf( stderr, "I'm confused.\n" ); /* Start counting. */ for( i=0; i < 10000000; i++ ) { if( i % 500000 == 0 ) { fprintf( stderr, "%d\n", i ); fflush( stderr ); } } } void interrupt_handler( int sig ) { fprintf( stderr, "Sorry, but I just don't want to quit.\n" ); fflush( stderr ); }