2016-09-22 6 views
0

です:にclock_gettimeは、NSを取得し、私はナノ秒の時間を取得しようとすると、私はこのような、ここではカーネル2.6.18でLinuxでのトラブルを持っている0

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

int main(void) 
{ 
    struct timespec time_start; 

    clock_gettime(CLOCK_REALTIME, &time_start); 

    printf(CLOCK_REALTIME); 
    printf("\nstart time %llus,%llu ns\n", time_start.tv_sec,time_start.tv_nsec); 

    return 0; 
} 

が、私はこのスクリプトを実行すると、それは次のように印刷しますこの:

[[email protected] test]# ./time 

start time 1474529199s,506211000 ns 
[[email protected] test]# ./time 

start time 1474529200s,65344000 ns 
[[email protected] test]# ./time 

start time 1474529200s,557196000 ns 

はここでしかマイクロ秒を得ることができ、それは次のように行い、なぜNSは0

で誰かが私に言うことはできますか?

+0

私の考えでは、すべてのプラットフォームでclock_gettimeが実装されているため、ナノ秒が返ってくるわけではありません。 – Bathsheba

答えて

1

オペレーティングシステムが提供する精度と同等の精度を得ることができます。この場合、オペレーティングシステムはマイクロ秒の解像度しか提供していないようですので、何もできません。

1970年以降の正確な時刻を秒単位で求めているので、これは珍しいことではありません。クロック()をチェックするか、解像度が高いOS依存の機能を探します。 (コンピュータが起動してから時計が通常カウントされます)。

それはカーネルではなく、カーネルです。 「コア」のように。多くの人が非ネイティブスピーカーであり、正しいと思ってエラーが広がる可能性があるので、このような技術用語を綴るのは悪いフォームです。

関連する問題