デバイスからデータをロギングしていて、そのデータをミリ秒単位でタイムスタンプするコードがあります。fprintf形式を間違って元に戻す
私はこのように作成されたタイムスタンプを格納するためにuint64_t
を使用していた。
fprintf(ptr,"%ld\n",(long)stamp0);
:私はこのような(それを通じ考えずに)ファイルにタイムスタンプを書いた後
struct timespec request;
clock_gettime(CLOCK_REALTIME, &request);
uint64_t stamp0 = (uint64_t)((uint64_t)request.tv_sec * 1000 + (uint64_t)request.tv_nsec/1000000);
今私は
1130802699
のように見えますが、
1478599582064
のように見える私のファイルに間違ったタイムスタンプを持っています。
私のエラーを修正するために何かできますか?
ありがとうございます。タイムスタンプは完全一致ではありませんでしたので、あなたが正しいと思われます。幸運なことに1時間ほどしか過ぎず、ロールオーバーは問題ではありません。 '344'という値にどうやって到着したか教えてください。 – James
本当に助けてくれて、あなたは私に多くの苦痛を救ってくれました。 – James