如何删除文件内7天之前的数据?

原创 2016年05月31日 14:18:55

如何删除文件内7天之前的数据?


首先, 我们需要在每一条信息之前记住一个时间撮, 这个时间撮有两个作用:

#1. 用来记住这条信息的时间,

#2. 用来做标记, 以后面好更新数据;


首先我采用的是本地时间来作为该时间撮;

data.timestamp = time((time_t*)NULL); 

time函数解释如下:

NAME
       time - get time in seconds

SYNOPSIS
       #include <time.h>

       time_t time(time_t *t);

DESCRIPTION
       time() returns the time as the number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).

       If t is non-NULL, the return value is also stored in the memory pointed to by t.

RETURN VALUE
       On success, the value of time in seconds since the Epoch is returned.  On error, ((time_t) -1) is returned, and errno is set appropriately.

ERRORS
       EFAULT t points outside your accessible address space.

CONFORMING TO
       SVr4, 4.3BSD, C89, C99, POSIX.1-2001.  POSIX does not specify any error conditions.

NOTES
       POSIX.1  defines  seconds since the Epoch using a formula that approximates the number of seconds between a specified time and the Epoch.  This for‐
       mula takes account of the facts that all years that are evenly divisible by 4 are leap years, but years that are evenly divisible  by  100  are  not
       leap years unless they are also evenly divisible by 400, in which case they are leap years.  This value is not the same as the actual number of sec‐
       onds between the time and the Epoch, because of leap seconds and because system clocks are not required to be synchronized to a standard  reference.
       The intention is that the interpretation of seconds since the Epoch values be consistent; see POSIX.1-2008 Rationale A.4.15 for further rationale.

SEE ALSO
       date(1), gettimeofday(2), ctime(3), ftime(3), time(7)

COLOPHON
       This  page is part of release 3.54 of the Linux man-pages project.  A description of the project, and information about reporting bugs, can be found
       at http://www.kernel.org/doc/man-pages/.


通过写文件的形式将相关消息及时间记录下来:

ret =  fprintf(stream, "%hu %u %hhu %u %u %u %hu %u %u %u %hu\n", 
				data.listNum, data.timestamp, data.type。

如果需要显示当时时间可采用:

	printf("The calendar time is %s\n", <strong>ctime(&timeStamp)</strong>);

增加判断条件来筛除7天之前的数据:

                        #define MAX_TIME_DURATION    (60*60*24*6) 
                        tt = time((time_t *)NULL);
			if (tt - data.timestamp > MAX_TIME_DURATION) // to add the judgement case. data.timestamp 
			{
				d_printf(D_DEBUG, NULL, "timestamp() - data.timestamp > MAX_TIME_DURATION\n");
			}

Best Wishes!

Yannick Tong



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

doc删除7天前的文件(包含子目录):

doc删除7天前的文件(包含子目录): forfiles /p e:\test\dfasas /m *.* -d -7 /c "cmd /c del /f @path" /s      ...

bat 删除某路径7天前的文件

@echo off forfiles /p D:\logstash-1.4.2\bin\ /m *.log -d -7  /C "cmd /c del /f @path\" forfiles /p D...

批处理--自动创建计划任务之删除7天以前的备份文件批处理

由于我的公司游戏服务器太多,之前建立的每日备份日志文件日积月累会 很大。 而且不需要保留那么多,按公司要求只需要保留一个星期的即可。 1.那么有什么方法自动删除7天以前备份的*.log文件...

linux 删除指定日期之前的文件

linux 删除指定日期之前的文件 两种方法: 1. 在一个目录中保留最近三个月的文件,三个月前的文件自动删除。 find /email/v2_bak -mtim...

批处理bat脚本删除指定天数日期之前的文件(六种方案)

本文介绍了批处理bat删除指定天数日期之前文件的方法,一段批处理脚本,结合日期参数,删除指定日期前的文件,关键时刻用得上,感兴趣的朋友参考下吧。 本文原始链接:http://www.jbxue.com...

DelAge32-在Windo中删除或移动N天之前的文件

DelAge32是一款命令行工具,它能够比较文件"创建时间"或者"最后修改时间"与当前时间帮你删除或者移动指定天数之前的文件,该工具类似与Windows系统自带的forfiles命令,只是它能够选择创...
  • cjjdaq
  • cjjdaq
  • 2012-08-29 19:58
  • 2397

Linux定时压缩备份Mysql数据库并自动删除之前备份数据

本文只要主要讲解linux定时压缩备份mysql数据库,并能自动删除较早的备份数据。实验达到了预期的效果,虽然中间不是很顺利,但是错误中学到了更多的东西,之所以拿出来分享一下,是希望大家引以为戒。不足...

之前创建了一个表空间,然后今天不小心把表空间文件给删除了。然后用pl/sql连接数据库的时候,报ORA-01033错误。ora-01033:oracle initializationg or shut

之前创建了一个表空间,然后今天不小心把表空间文件给删除了。然后用pl/sql连接数据库的时候,报ORA-01033错误。ora-01033:oracle initializationg or shut...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)