如何删除文件内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



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

linux下Posix消息队列的创建和删除

原文地址:http://blog.chinaunix.net/uid-24774106-id-3033607.html 前段时间学习线程读写锁,找资料就找到了STEVENS老爷子的UNP2,虽然...
  • ZX714311728
  • ZX714311728
  • 2016年11月16日 13:26
  • 949

posix文件操作

POSIX文件操作建立在操作系统提供的接口之上。 POSIX文件操作特点:用户操作文件没有缓冲区,用户操作文件没有记录的概念。 #include #include #include #...
  • a936676463
  • a936676463
  • 2013年03月01日 10:14
  • 1517

POSIX文件及目录管理

在linux操作系统中,实现了两类对文件IO的管理,一类是遵循POSIX标准,linux操作系统自身提供的IO系统调用,如open、close、read等函数;另一类是由ANSI标准提供的标准IO库函...
  • Sun_Rise2011
  • Sun_Rise2011
  • 2012年10月11日 15:51
  • 4530

删除某天前的文件

语句写法:find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;  例1: 将/usr/local/backups目录下所有10天前带"."的文件删除...
  • darennet
  • darennet
  • 2014年10月30日 08:53
  • 377

android删除文件出错

当删除一个文件,再重新下载这个同名文件,保存到sdcard时出现error,部分手机出现 Caused by: libcore.io.ErrnoException: open failed:...
  • hhhccckkk
  • hhhccckkk
  • 2015年06月11日 12:32
  • 7536

SQL 自动清除7天前数据前收缩数据库

作用:删除七天前数据库中间表的资料,并收缩数据库 delete-Ecustom-xml-midtable.sql delete Mid_bom where datediff(day,dty,getd...
  • u014461454
  • u014461454
  • 2015年09月08日 08:21
  • 1078

Windows 中删除某一文件夹下某一时间前创建的文件.

注:  文章内容来源于网络:  #include  void DelteOldFiles() { char path[256]; GetModuleFileNameA(NULL,path,s...
  • w839687571
  • w839687571
  • 2014年12月26日 09:27
  • 2112

如何恢复 Linux 上删除的文件(3)

http://www.ibm.com/developerworks/cn/linux/l-cn-filesrc3/index.html冯 锐 (fengrui@cn.ibm.com), 软件工程师, ...
  • redtux
  • redtux
  • 2008年01月19日 08:12
  • 394

linux内核posix文件锁实现

最近由于在我们的系统中需要实现posix文件锁,因此研究了下
  • lmhjmm
  • lmhjmm
  • 2014年06月13日 22:52
  • 923

AIX 删除一天前的文件

du /oracle | sort -nr | more 删文件 find ./ -ctime +1 |xargs rm 删文件夹 find ./ -ctime +1 |xargs rm -rf...
  • paluo
  • paluo
  • 2011年12月26日 15:36
  • 3720
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何删除文件内7天之前的数据?
举报原因:
原因补充:

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