timeval と clock() 関数を使用して、C プログラムの 2 つのアクション間の時間差を確認しています。どういうわけか、timeval は適切なミリ秒単位の経過時間を与えてくれるようです。ここで、clock() は非常に少ない値を与えます。
g_time = clock();
gettimeofday(&decode_t,NULL);
その後しばらくして
delay =((float)(clock()-g_time)/(float)CLOCKS_PER_SEC);
gettimeofday(&poll_t,NULL);
delay1 = ((poll_t.tv_sec - decode_t.tv_sec)*1000 + (poll_t.tv_usec - decode_t.tv_usec)/1000.0) ;
printf("\ndelay1: %f delay: %f ",delay1,delay);
通常の出力は次のとおりです。
遅延 1: 1577.603027 遅延: 0.800000
delay1 はミリ秒単位、delay は秒単位です。
私は archlinux 64 ビットを使用しています。なぜこれが起こっているのか理解できません。