大佬教程收集整理的这篇文章主要介绍了仅监视目录中的新文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
解决方案是将最后访问时间存储在全局变量中,并使用过滤器选择最新文件scandir()
:
int cmp_mtime( const struct dirent** lentry, const struct dirent** rentry )
:
(*lentry)->d_name
(由路径扩展,但这仅是详细信息)ltime = statbuf.st_mtime;
(*rentry)->d_name
(由路径扩展,但这仅是详细信息)rtime = statbuf.st_mtime;
if ( ltime < rtime ) return -1;
else if ( ltime > rtime ) return 1;
return 0;
int selector( const struct dirent* entry )
:
entry->d_name
(由路径扩展,但这仅是详细信息)stat.st_mtime > lastseen
然后返回1,否则返回0主要:
lastseen
scandir( directory, &entrIEs, selector, cmp_mtime );
我想在目录中监视来自C应用程序的新文件。但是,我对修改后的文件不感兴趣,仅对新文件感兴趣。目前,我为此目的使用readdir / stat:
while ( (ent = readdir(dir)) != NULL ) {
strcpy(path,mon_dir);
strcat(path,"/");
strcat(path,ent->d_name);
if ( stat(path,&statbuf) == -1 ) {
printf( "Can't stat %s\n",ent->d_name );
continue;
}
if ( S_ISREG(statbuf.st_mode) ) {
if ( statbuf.st_mtime > *timestamp ) {
tcomp = localtime( &statbuf.st_mtime );
strftime( s_date,sizeof(s_date),"%Y%m%d %H:%M:%S",tcomp );
printf( "%s %s was added\n",s_date,ent->d_name );
*timestamp = statbuf.st_mtime;
}
}
}
知道如何在不保留文件列表的情况下检测 Linux和Solaris 10 上新创建的文件吗?
以上是大佬教程为你收集整理的仅监视目录中的新文件全部内容,希望文章能够帮你解决仅监视目录中的新文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。