(1)打开一个目录
头文件:
#include <sys/types.h>
#include <dirent.h>
原型: DIR *opendir(const char *name);
参数: 待打开的目录。
返回值:
成功 :指向打开目录的指针 DIR *dirp。
失败 :NULL。
(2)读目录
头文件:
#include <dirent.h>
原型: struct dirent *readdir(DIR *dirp);
参数: opendir 的返回值。
返回值:
成功 :struct dirent * 类型的结构体指针,该结构体存放着目录信息。
失败 :NULL
结构体详细:
struct dirent {
ino_t d_ino; // 此目录进入点的 inode
off_t d_off; // 目录文件开头至此目录进入点的位移量
unsigned short d_reclen; // 文件名的实际长度,不包含 NULL 字符
unsigned char d_type; // 文件名所指的文件类型
char d_name[256]; // 文件名
};
// 下面的注释依次位:d_type 文件类型 对应的宏
// DT_BLK 块设备文件
// DT_CHR 字符设备文件.
// DT_DIR 目录文件
// DT_FIFO 管道文件
// DT_LNK 软链接
// DT_REG 普通文件
// DT_SOCK 套接字
// DT_UNKNOWN 未知类型
(3) 关闭目录
#include <sys/types.h>
#include <dirent.h>
int closedir(DIR *dirp);