当前位置: 技术问答>linux和unix
linux下写文件内容时如何给数据添加上时间标志
来源: 互联网 发布时间:2016-11-21
本文导语: 具体描述一下: 在linux系统下,要对一个文本文件长时间的写数据。数据按帧为单位,1帧为64字节。希望做的是:能够为每一帧添加一个时间标志。位置在帧的前面或者后面都行。时间标志可以为系统自带的时间,也...
具体描述一下:
在linux系统下,要对一个文本文件长时间的写数据。数据按帧为单位,1帧为64字节。希望做的是:能够为每一帧添加一个时间标志。位置在帧的前面或者后面都行。时间标志可以为系统自带的时间,也可以是从00:00开始。
顺便谈一下自己的理解:
在linux下,获取系统时间比较容易。但如何把系统时间插到连续写入文件的帧之间呢?希望大家能给点好的解决思路,不胜感激!小弟总分只有65分了,只能给50分了。请见谅!
在linux系统下,要对一个文本文件长时间的写数据。数据按帧为单位,1帧为64字节。希望做的是:能够为每一帧添加一个时间标志。位置在帧的前面或者后面都行。时间标志可以为系统自带的时间,也可以是从00:00开始。
顺便谈一下自己的理解:
在linux下,获取系统时间比较容易。但如何把系统时间插到连续写入文件的帧之间呢?希望大家能给点好的解决思路,不胜感激!小弟总分只有65分了,只能给50分了。请见谅!
|
那就写一帧数据,写一个时间
两个语句呗
|
做个数据结构吧,类似:
typedef struct _frame {
char data[64];
time t;
} frame;
对文件的读写以这个结构为单位。
如果文件结构无法修改,也可以另建立一个存time的文件,按照索引和数据一一对应,也就是说第i帧在数据文件中对应偏移为 i*64,那么在时间文件中对应偏移就是 i*sizeof(time)
typedef struct _frame {
char data[64];
time t;
} frame;
对文件的读写以这个结构为单位。
如果文件结构无法修改,也可以另建立一个存time的文件,按照索引和数据一一对应,也就是说第i帧在数据文件中对应偏移为 i*64,那么在时间文件中对应偏移就是 i*sizeof(time)
|
在数据结构体内添加一个类型为struct timeval access_time的成员变量,在需要打时标的时候使用
gettimeofday(&access_time, NULL)即可