#include #include #include #include #include #include struct timeval getTV; struct timezone getTZ; double prevValue=0.0, curValue=0.0; void sigHand( int i ){ gettimeofday( &getTV, &getTZ ); prevValue = curValue; curValue = getTV.tv_sec+(double)getTV.tv_usec/1.0e6; } int main( int argc, char ** argv ) { ::setpriority( PRIO_PROCESS, 0, -19 ); struct sigaction sa; memset( &sa, 0, sizeof(sa) ); sa.sa_handler = sigHand; sigaction( SIGALRM, &sa, NULL ); struct itimerval tv; tv.it_interval.tv_sec = 0; tv.it_interval.tv_usec = 30000; tv.it_value.tv_sec = 0; tv.it_value.tv_usec = 30000; setitimer( ITIMER_REAL, &tv, NULL ); while( 1 ) { pause(); // printf("%10.3f\n",curValue); printf("Cur=%16.6fs, Prev=%16.6fs, delta=%8.3fms\n",curValue,prevValue,(curValue-prevValue)*1.0e3); } }