日期:2014-05-16  浏览次数:20716 次

linux下写文件内容时如何给数据添加上时间标志
具体描述一下:
在linux系统下,要对一个文本文件长时间的写数据。数据按帧为单位,1帧为64字节。希望做的是:能够为每一帧添加一个时间标志。位置在帧的前面或者后面都行。时间标志可以为系统自带的时间,也可以是从00:00开始。
顺便谈一下自己的理解:
在linux下,获取系统时间比较容易。但如何把系统时间插到连续写入文件的帧之间呢?希望大家能给点好的解决思路,不胜感激!小弟总分只有65分了,只能给50分了。请见谅!

------解决方案--------------------
做个数据结构吧,类似:

typedef struct _frame {
char data[64];
time t;
} frame;

对文件的读写以这个结构为单位。

如果文件结构无法修改,也可以另建立一个存time的文件,按照索引和数据一一对应,也就是说第i帧在数据文件中对应偏移为 i*64,那么在时间文件中对应偏移就是 i*sizeof(time)
------解决方案--------------------
在数据结构体内添加一个类型为struct timeval access_time的成员变量,在需要打时标的时候使用
C/C++ code
gettimeofday(&access_time, NULL)

------解决方案--------------------
探讨在linux下,获取系统时间比较容易。但如何把系统时间插到连续写入文件的帧之间呢?