ミリ秒の精度を取得する必要があります。この質問を調べますが、Windowsで作業しています。POSIX関数のリンクエラーが発生します。
1970年以降のUTC時間をミリ秒単位で取得できれば非常に良いでしょう。
ANSI Cにはありませんが、Windows APIは次のようにGetSystemTime
機能を提供します:http://msdn.microsoft.com/en-us/library/ms724950 (v = VS.85).aspx
申し訳ありませんが、ANSICもWindowsAPIも使用してそれを行うことはできません。
GetSystemTimeを使用してミリ秒の解像度で、またはGetSystemTimeAsFileTimeを使用して100ナノ秒の解像度でシステム時刻を取得できますが、精度はそれほど良くありません。システム時間は、各クロック間隔でのみ更新されます。これは、基盤となるアーキテクチャ(SMP、ユニプロセッサなど)に応じて、約10〜15ミリ秒です。
さまざまな複雑さのさまざまなアルゴリズムを使用してシステム時間を推定する方法はありますが、オペレーティングシステムのサポートがないと、正しい高解像度の時刻が保証されることはありません。
Windows APIには、SYSTEMTIME構造と、マシンのシステム時間とローカル時間を取得するためのいくつかのsys呼び出しがあり、次のように実装できます。
SYSTEMTIME systime;
GetSystemTime(&systime);
unsignedintミリ秒=systime.wMilliseconds;