#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <time.h> #include <sys/time.h> #include <signal.h> void handler(int sig) { return; } int main(void) { int i; time_t now; struct tm *pnow; struct itimerval timer; struct sigaction act = { .sa_handler = handler, .sa_flags = SA_RESTART, }; sigemptyset(&act.sa_mask); if (sigaction(SIGALRM, &act, NULL) < 0) return 1; /* set intarval timer (10ms) */ timer.it_value.tv_sec = 1; timer.it_value.tv_usec = 0; timer.it_interval.tv_sec = 1; timer.it_interval.tv_usec = 0; if(setitimer(ITIMER_REAL, &timer, NULL) < 0){ perror("setitimer error"); exit(1); } for(i=0;i<60;i++) { sleep(10); now = time(NULL); pnow = localtime(&now); printf("%d:%d:%d\n",pnow->tm_hour,pnow->tm_min,pnow->tm_sec); } exit(0); } |