linux 下怎样 定时 删除目录中的 指定的文件

wuqiang10906 2008-09-09 01:59:16
各位哥哥姐姐:

小弟有个问题请教:一个程序每天都会产生一个*.txt文件(日志),*为这种格式:20080905charstring,也就是年月日加一些字符,现在的问题是:在linux中用c语言实现这个功能:定时的删除保存时间超过2周的*.txt文件。
注:*.txt文件保存的路径是不同的,需要配置路径。

谢谢谢谢了!!!!!!
...全文
505 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuqiang10906 2008-09-10
  • 打赏
  • 举报
回复
吸取别人的意见和想法 加入自己的想法!
tangyulong1214 2008-09-10
  • 打赏
  • 举报
回复
我靠,你怎么又发帖问???
theey 2008-09-10
  • 打赏
  • 举报
回复
你说的都是windows下的格式,linux下不是以后缀来判断文件属性的
wuqiang10906 2008-09-10
  • 打赏
  • 举报
回复
谢谢各位的指点!
谢谢 !
因小弟的分少!只能给这么点了,不好意思 !请问各位大哥大姐 ,那个函数能判断文件的格式,即能判断是txt还是 doc文件!
t84770 2008-09-09
  • 打赏
  • 举报
回复
顶以下
stareyess 2008-09-09
  • 打赏
  • 举报
回复
“定时的删除保存时间超过2周的*.txt文件”
从上述功能的表述来看,我理解你是准备用一个常驻进程来定时处理,这样的话应该会用到daemon守护进程,可以把1楼的代码转化成daemon进程来处理。
如果是每天手动执行处理,那我觉得用不如shell来做,要简单的多。
cceczjxy 2008-09-09
  • 打赏
  • 举报
回复
#include <dirent.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>

int main()
{
DIR *db;
char filename[256],path[1024];
struct dirent *p;
FILE *file;

time_t curdate,towwork;
struct tm *tdate;
int year=0,month=0,day=0;
file=fopen("./config","r");
if(!file){
printf("config not exist!\n");
return -1;
}
memset(path,0,sizeof(path));
fgets(path,sizeof(path),file);
if(path[strlen(path)-1]=='\n')path[strlen(path)-1]='\0';
db=opendir(path);
if(!db){
printf("open %s error!\n",path);
return -1;
}
while(p=readdir(db))
{
if(strcmp(p->d_name,".")==0||strcmp(p->d_name,"..")==0)
continue;
time(&curdate);
tdate = localtime (&curdate);
year=day=month=0;
sscanf(p->d_name,"%04d%02d%02d",&year,&month,&day);
if(year==0||month==0||day==0)continue;
tdate->tm_mday = day;
tdate->tm_mon = month-1;
tdate->tm_year =year-1900;
towwork=mktime(tdate);
if(towwork<(curdate-2*7*24*3600))printf("%s\n",p->d_name);
}
closedir(db);
}


config
./

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧