库函数记录

  1. DIR文件类型定义
    头文件#include


    image.png

DIR* dp=opendir(path); 由路径获取DIR类型的文件信息

  1. dirent类型定义
    struct dirent
    {
        long d_ino; inode number索引节点号
        off_t d_off; offset to this dirent 在目录文件中的偏移
        unsigned short d_reclen; 文件名长
        unsigned char d_type; 文件类型
        char d_name [NAME_MAX+1];文件名,最长255字符
    }
strct dirent *entry =NULL;
entry=readdir(dp);

由DIR类型的文件信息读取dirent类型的文件信息

  1. d_type文件类型定义
    enum
    {
      DT_UNKNOWN = 0,  //未知类型
      DT_FIFO = 1,  //first in, first out 类似于管道, 有名管道
      DT_CHR = 2,    //字符设备文件
      DT_DIR = 4,  //目录
      DT_BLK = 6,  //块设备文件
      DT_REG = 8,  //普通文件
      DT_LNK = 10,      //连接文件
      DT_SOCK = 12,    //套接字类型
      DT_WHT = 14      //
    };
  1. stat类型定义
    头文件
    struct stat  {   
        dev_t       st_dev;     /* ID of device containing file -文件所在设备的ID*/  
        ino_t       st_ino;     /* inode number -inode节点号*/    
        mode_t      st_mode;    /* protection -文件权限和文件类型信息*/    
        nlink_t     st_nlink;   /* number of hard links -链向此文件的连接数(硬连接)*/    
        uid_t       st_uid;     /* user ID of owner -user id*/    
        gid_t       st_gid;     /* group ID of owner - group id*/    
        dev_t       st_rdev;    /* device ID (if special file) -设备号,针对设备文件*/    
        off_t       st_size;    /* total size, in bytes -文件大小,字节为单位*/    
        blksize_t   st_blksize; /* blocksize for filesystem I/O -系统块的大小*/    
        blkcnt_t    st_blocks;  /* number of blocks allocated -文件所占块数*/    
        time_t      st_atime;   /* time of last access -最近存取时间*/    
        time_t      st_mtime;   /* time of last modification -最近修改时间*/    
        time_t      st_ctime;   /* time of last status change - */    
    };  

stat结构体定义了文件的各种属性数据。所以stat函数是用来把文件或者路径的属性信息识别并保存在内存中。

  1. st_mode标志


    image.png
  2. stat函数
    int stat(const char filename, struct statbuf);
    通过文件(夹)路径filename获取文件信息,并保存在buf所指的结构体stat中
    返回值:成功返回0,失败-1,错误代码存在errno
    image.png
struct stat statbuf;
stat(entry->d_name,&statbuf);

你可能感兴趣的:(库函数记录)