使用标准C库或POSIX库扫描UNIX目录中的文件

时间:2013-09-21 23:47:27

标签: c unix

C程序有没有查看某个目录中的文件并与它们接口?例如,假设我通过system()函数使用wget下载了一个文件,我想看看该文件的名称是什么。有没有办法让我通过标准C库或POSIX库实现这一目标?

1 个答案:

答案 0 :(得分:1)

这将查找在不到5秒前修改的目录中的文件 - 没有错误检查。

#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>
#include <time.h>
#include <dirent.h>

void dirchk(const char *arg)  // arg=name of directory
{
    time_t when = time(NULL) -5; // 5 secs ago
    struct stat st;
    DIR *dirp=opendir(arg);
    struct dirent *d=readdir(dirp);
    while (d != NULL)
    {
        if ((d = readdir(dirp)) != NULL) 
        {
            stat(d->d_name, &st);
            if( when - st.st_mtime  <=5 )
               printf("%s\n", d->d_name);
        }
    } 
    closedir(dirp);
    return;
}

int main()
{
   dirchk(".");
   return 0;
}

“”。是当前的工作目录。