1
エポックからの経過時間を秒単位で、ミリ秒単位で表示する方法はわかっていますが、ナノ秒で試してみると、あまりにも小さい整数の偽出力が得られます。最後の実行よりも。エポックからナノ秒単位で印刷する時間
たとえば、これを実行すると、エポックから35071471ナノ秒が得られます。
これを正しく表示するための助けがあれば幸いです。
エポックからの経過時間を秒単位で、ミリ秒単位で表示する方法はわかっていますが、ナノ秒で試してみると、あまりにも小さい整数の偽出力が得られます。最後の実行よりも。エポックからナノ秒単位で印刷する時間
たとえば、これを実行すると、エポックから35071471ナノ秒が得られます。
これを正しく表示するための助けがあれば幸いです。
ナノ秒の部分はちょうど "分数"部分です。秒も追加する必要があります。
// otherwise gcc with option -std=c11 complaints
#define _POSIX_C_SOURCE 199309L
#include <stdio.h>
#include <time.h>
#include <stdint.h>
#include <inttypes.h>
#define BILLION 1000000000L
int main(void)
{
long int ns;
uint64_t all;
time_t sec;
struct timespec spec;
clock_gettime(CLOCK_REALTIME, &spec);
sec = spec.tv_sec;
ns = spec.tv_nsec;
all = (uint64_t) sec * BILLION + (uint64_t) ns;
printf("Current time: %" PRIu64 " nanoseconds since the Epoch\n", all);
return 0;
}
もう一つ...はるかに役立つトピックに関する情報ページより、 –
をありがとう、それは 'char'として' ALL'をキャストすることは可能でしょうか?私がしようとしているのは、それをキャストしようとするとセグメンテーション違反が発生します。 –
'all'は8バイトの大きな整数で、非常に大きな数字です。なぜそれを1バイトの小さな 'char'としたいのですか? – deamentiaemundi