/****************************************************** ** ** R.S. Dannelly *****************************************************/ #include #include #include #include /********************************************************/ void signal_handler() { // be sure to catch the next alarm signal (SIGALRM, signal_handler); printf("signal received\n"); struct itimerval old, new; new.it_interval.tv_usec = 0; new.it_interval.tv_sec = 0; new.it_value.tv_usec = 0; // microsecond delay new.it_value.tv_sec = 3; // second delay if (setitimer (ITIMER_REAL, &new, &old) < 0) printf("timer not set\n"); } /********************************************************/ int main() { signal (SIGALRM, signal_handler); struct itimerval old, new; new.it_interval.tv_usec = 0; new.it_interval.tv_sec = 0; new.it_value.tv_usec = 0; new.it_value.tv_sec = 3; if (setitimer (ITIMER_REAL, &new, &old) < 0) printf("timer not set\n"); // infinite loop for(;;); }