C 神奇地撤销fprintf格式错误
我有一些代码记录来自设备的数据,并用系统时间(毫秒)标记这些数据 我使用了一个C 神奇地撤销fprintf格式错误,c,C,我有一些代码记录来自设备的数据,并用系统时间(毫秒)标记这些数据 我使用了一个uint64\t来存储时间戳,它是这样创建的: 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); fprintf(ptr,"%ld\
uint64\t
来存储时间戳,它是这样创建的:
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);
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);
fprintf(ptr,"%ld\n",(long)stamp0);
现在我的文件中有不正确的时间戳,看起来像1130802699
,但应该像1478599582064
我能做些什么来修复我的错误吗?我猜时间戳
1130802699
应该更像1478599552523
而不是1478599582064
如果是这样,您可以通过添加适当的1个时间戳的倍数来恢复时间戳,时间戳不完全匹配,因此我怀疑您是对的。幸运的是,这只是一个小时左右的过程,所以翻车应该不是问题。请你向我解释一下你是如何得出344这个值的?谢谢,这真的很有帮助,你帮了我很多忙。