使用readdir读取目录文件并按时间排序输出
最近需要使用readdir遍历目录下文件,但是发现取出文件的顺序都是随机的,百度发现可以使用scandir函数按照规则排序:
https://blog.csdn.net/krens/article/details/78365382?utm_source=blogxgwz3
刚学C语言,所以决定自己动手写一下,写这个也是给自己做笔记,其中使用了readdir和stat函数,关于这两个函数的讲解:
https://www.cnblogs.com/jikexianfeng/p/5742887.html
https://www.cnblogs.com/gangzilife/p/9083470.html
下面贴一下实现代码:
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<dirent.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#define MAX_NAME_LEN 256+1
typedef struct file_list
{
time_t file_ctime;
char* file_name;
struct file_list* next;
}file_list_t;
void main(int argc, char** argv)
{
DIR* dir;
struct dirent* ptr;
int i;
int flag = 0