ホームページ > バックエンド開発 > C++ > 外部ライブラリを使用せずに Linux でミリ秒の時間精度を得るにはどうすればよいですか?

外部ライブラリを使用せずに Linux でミリ秒の時間精度を得るにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-19 07:05:02
オリジナル
599 人が閲覧しました

How Can I Get Millisecond Time Accuracy in Linux Without External Libraries?

Linux でのミリ秒時刻の取得: Clock() の代替手段

Linux で秒の範囲を超えた精度を求めると、制限に遭遇します最も近い秒にのみ近似します。 Qt などのサードパーティ ライブラリは QTime クラスを使用したソリューションを提供しますが、より基礎的なアプローチを目指して、標準 C ツールの領域を探求します。

ミリ秒の精度を達成するには、 ヘッダ。この関数は timeval 構造体を返し、秒とマイクロ秒の両方のコンポーネントで現在時刻をキャプチャします。

次のコード スニペットを考えてみましょう。

#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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート