0

私はちょうど clock_getres の使用方法を学んでいます (Web 上のどこにもこれに関する適切なドキュメントはほとんどありません)。私のコードは次のようになります。

timespec now;
clock_getres(CLOCK_REALTIME,&now);
std::cout<<statut_cast<int>(now.tv_sec)<<","<<static_cast<int>(now.tv_nsec)<<std::endl;

このコードをいつ実行しても、出力は常に 0,1 です。これが機能しない理由を誰か説明できますか?

4

2 に答える 2

6

時計の解像度を返すのではclock_gettimeなく、現在の時刻を返すために使用します。clock_getres

http://pubs.opengroup.org/onlinepubs/009604599/functions/clock_getres.html

このclock_getres()関数は、任意のクロックの解像度を返す必要があります。

このclock_gettime()関数はtp、指定されたクロックの現在の値を返しますclock_id

于 2012-06-20T19:33:18.833 に答える
2

これは正しい動作です。出力は0,1、解像度を取得しようとしているクロックの解像度がナノ秒であるためです。したがってnow.tv_nsec=1、 とnow.tv_sec=0. ナノ秒の解像度がない場合、出力は0,0.

于 2012-06-20T19:42:13.040 に答える