int time_sleep void handler(int sig) { alarm(time_sleep); } int main() { int i; signal(SIGUSR1, handler); while(1) { i = sleep(time_sleep); if(i!=0) printf("Awakened %d seconds before\n", i); //do things; } }