#include #include struct timeval tv1, tv2, stv, etv; struct timezone tz; void waitTime(int time) { (void) gettimeofday(&tv1, &tz); while (1) { (void) gettimeofday(&tv2, &tz); if ((tv2.tv_sec-tv1.tv_sec)*1000000+(tv2.tv_usec-tv1.tv_usec)- time>=-4) break; } } main() { int time, diff; int i; for (i=0; i<100 & time > 0; i++) { printf("enter usec number to be wait:\n"); scanf("%d", &time); printf("time=%d\n", time); (void) gettimeofday(&stv, &tz); waitTime(time); (void) gettimeofday(&etv, &tz); diff= (etv.tv_sec-stv.tv_sec)*1000000+(etv.tv_usec-stv.tv_usec); printf("wait %dusec, diff=%dusec, stv=%d.%d, etv=%d.%d\n", time, diff, stv.tv_sec, stv.tv_usec, etv.tv_sec, etv.tv_usec) ; } }