在下面的程序中, 为啥需要在timefunc函数中对SIGPROF信号的 处理进行重复注册: #include <sys/select.h> #include <sys/itimer.h> #include <stdio.h> #include <unistd.h> #include <signal.h> int n = 0; void timefunc(int sig) { fprintf(stderr, "ITIMER_PROF[%d]
", n++); signal(SIGPROF, timefunc); }
void main() { struct itimerval value; value.it_value.tv_sec=1; value.it_value.tv_usec=500000; value.it_interval.tv_sec=1; value.it_interval.tv_usec=500000; signal(SIGPROF, timefunc); setitimer(ITIMER_PROF, &value, NULL); while (1); }
|