#include<sys/types.h>
#include<dirent.h>
DIR* opendir (const char * path ); //(获取path子目录下的所由文件和目录的列表,如果path是个文件则返回值为NULL)在失败的时候返回一个空的指针
struct dirent* readdir(DIR* dir_handle); //(循环读取dir_handle,目录和文件都读),读取opendir 返回值的那个列表
struct dirent *readdir(DIR *dp); void rewinddir(DIR *dp); int closedir(DIR *dp); long telldir(DIR *dp); void seekdir(DIR *dp,long loc);
struct dirent { long d_ino; /* inode number 索引节点号 */ off_t d_off; /* offset to this dirent 在目录文件中的偏移 */ unsigned short d_reclen; /* length of this d_name 文件名长 */ unsigned char d_type; /* the type of d_name 文件类型 */ char d_name [NAME_MAX+1]; /* file name (null-terminated) 文件名,最长255字符 */ }
enum { DT_UNKNOWN = 0, # define DT_UNKNOWN DT_UNKNOWN DT_FIFO = 1, //一个命名管道,或FIFO # define DT_FIFO DT_FIFO DT_CHR = 2, //字符设备 # define DT_CHR DT_CHR DT_DIR = 4, //目录 # define DT_DIR DT_DIR DT_BLK = 6, //块设备 # define DT_BLK DT_BLK DT_REG = 8, //常规文件 # define DT_REG DT_REG DT_LNK = 10, //符号链接 # define DT_LNK DT_LNK DT_SOCK = 12, //套接字 # define DT_SOCK DT_SOCK DT_WHT = 14 # define DT_WHT DT_WHT };
struct stat { mode_t st_mode; //文件访问权限 ino_t st_ino; //索引节点号 dev_t st_dev; //文件使用的设备号 dev_t st_rdev; //设备文件的设备号 nlink_t st_nlink; //文件的硬连接数 uid_t st_uid; //所有者用户识别号 gid_t st_gid; //组识别号 off_t st_size; //以字节为单位的文件容量 time_t st_atime; //最后一次访问该文件的时间 time_t st_mtime; //最后一次修改该文件的时间 time_t st_ctime; //最后一次改变该文件状态的时间 blksize_t st_blksize; //包含该文件的磁盘块的大小 blkcnt_t st_blocks; //该文件所占的磁盘块 };
原文:https://www.cnblogs.com/vx-cg248805770/p/12061310.html