#include #include #include void handler( int sig) { static struct timeval tp1, tp2; static count = 0; struct itimerval it = {}; count++; gettimeofday(&tp2, NULL); printf("%d s, %d us\n", tp2.tv_sec, tp2.tv_usec); if (count == 100) { setitimer(ITIMER_REAL, & it, NULL); } } main() { struct itimerval it = {}; int i, j; signal(SIGALRM, handler); it.it_interval.tv_usec = 1000; it.it_value.tv_usec = 1000; i = setitimer(ITIMER_REAL, & it, NULL); printf("setitimer %d\n", i); do { j = sleep(2); // printf("Remaining %d\n", j); } while (j); it.it_value.tv_usec = 0; i = setitimer(ITIMER_REAL, & it,NULL); printf("setitimer %d\n", i); }