Linux でのミリ秒時刻の取得: Clock() の代替手段
Linux で秒の範囲を超えた精度を求めると、制限に遭遇します最も近い秒にのみ近似します。 Qt などのサードパーティ ライブラリは QTime クラスを使用したソリューションを提供しますが、より基礎的なアプローチを目指して、標準 C ツールの領域を探求します。
ミリ秒の精度を達成するには、
次のコード スニペットを考えてみましょう。
#include <sys/time.h> #include <stdio.h> #include <unistd.h> int main() { struct timeval start, end; long mtime, seconds, useconds; gettimeofday(&start, NULL); usleep(2000); gettimeofday(&end, NULL); seconds = end.tv_sec - start.tv_sec; useconds = end.tv_usec - start.tv_usec; mtime = ((seconds) * 1000 + useconds/1000.0) + 0.5; printf("Elapsed time: %ld milliseconds\n", mtime); return 0; }
この例では、gettimeofday() を利用してキャプチャします。 usleep() を使用した 2 ミリ秒の遅延の前後の現在時刻。最終時間から初期時間を減算することで、経過時間を秒とマイクロ秒で取得します。これをミリ秒に変換するには、秒に 1000 を掛け、マイクロ秒に 1000.0 を掛けて加算し、0.5 調整で端数精度を確保します。
この方法は、C でミリ秒を取得するための正確で標準的なソリューションを提供します。 Linux。さまざまなプラットフォーム間での互換性を維持しながら、外部ライブラリへの依存を排除します。
以上が外部ライブラリを使用せずに Linux でミリ秒の時間精度を得るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。