#include #include #include #define N (60 * 100) static volatile struct timeval tvbuf[N]; static volatile int tvx; static void handle(int sig __attribute__((__unused__))) { struct timeval tv; int i; i = tvx; if (i < N) { gettimeofday(&tv,0); tvbuf[i] = tv; tvx = i + 1; } } int main(void) { struct sigaction sa; struct itimerval itv; sigset_t m; int i; struct timeval tv; tvx = 0; sa.sa_handler = &handle; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sigaction(SIGALRM,&sa,0); itv.it_interval.tv_sec = 0; itv.it_interval.tv_usec = 10000; itv.it_value = itv.it_interval; setitimer(ITIMER_REAL,&itv,0); sigemptyset(&m); while (tvx < N) sigsuspend(&m); for (i=0;i