◎ dirent 結構定義
struct dirent
{
    ino_t d_ino;
    ff_t d_off;
    signed short int d_reclen;
    unsigned char d_type;
    har d_name[256];
};
  • d_ino 此目录进入点的inode
  • d_off 目录文件开头至此目录进入点的位移
  • d_reclen _name的长度,不包含NULL字符
  • d_type d_name 所指的文件类型
  • d_name 文件名


◎ opendir(打开目录)
★ 表头文件
  • #include  
  • #include    
★ 定义函数
  • DIR *opendir(const char * name);
★ 函数说明
  • opendir()用来打开参数name指定的目录,并返回DIR*形态的目录流,和open()类似,接下来对目录的读取和搜索都要使用此返回值。
★ 返回值
  • 成功则返回 DIR* 型态的目录流。
  • 失败则返回 NULL。
★ 错误代码
  • EACCESS 权限不足。
  • EMFILE 已达到进程可同时打开的文件数上限。
  • ENFILE 已达到系统可同时打开的文件数上限。
  • ENOTDIR 参数name非真正的目录。
  • ENOENT 参数name 指定的目录不存在,或是参数name 为一空字符串。
  • ENOMEM 核心内存不足。
◎ readdir(读取目录)
★ 表头文件
  • #include  
  • #include    
★ 定义函数
  • struct dirent *readdir(DIR * dir);
★ 函数说明
  • readdir() 返回参数 dir 目录流的下个目录进入点。
★ 返回值
  • 成功则返回下个目录进入点。
  • 错误发生或读取到目录文件尾则返回NULL。
◎ closedir(关闭目录)
★ 表头文件
  • #include  
  • #include    
★ 定义函数
  • int closedir(DIR *dir);
★ 函数说明
  • closedir() 关闭参数 dir 所指的目录流。
★ 返回值
  • 成功则返回 0。
  • 失败返回 -1,错误原因存于 errno 中。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()