setitimer
setitimerを用いたタイマ使用のサンプル
下記では1秒周期でシグナルが発生する。
// timer.c #include <stdio.h> #include <signal.h> #include <time.h> #include <sys/time.h> void alarm_handler(int signo); int counter = 0; int main(void) { struct itimerval delay; int ret; signal(SIGALRM, alarm_handler); delay.it_value.tv_sec = 1; delay.it_value.tv_usec = 0; delay.it_interval.tv_sec = 1; delay.it_interval.tv_usec = 0; ret = setitimer(ITIMER_REAL, &delay, NULL); if(ret){ perror("setitimer"); return; } while(1){ pause(); printf("counter : %d\n", counter); } } void alarm_handler(int signo) { counter++; }