# dirent.h — DragonOS dev 文档

# dirent.h

## 简介

    与文件夹有关的头文件。

## 结构体列表：

    ``struct DIR`` :

        变量列表：

        ``int fd`` : 文件夹id（不推荐修改）

        ``int buf_pos`` : 文件夹缓冲区指针的位置

        ``int buf_len`` : 文件夹缓冲区的大小（默认为256）

    ``struct dirent`` :

        变量列表：

        ``ino_t(see libc/sys/types.h) ino`` : 文件序列号（不推荐修改）

        ``off_t d_off`` : dir偏移量（不推荐修改）

        ``unsigned short d_reclen`` : 文件夹中的记录数

        ``unsigned char d_type`` : 目标的类型(有可能是文件，文件夹，磁盘)

        ``char d_name[]`` : 目标的名字

## 函数列表（这里只列出已实现的函数）：

    ``DIR opendir(const char *path)``

        传入文件夹的路径，返回文件夹结构体

    ``int closedir(DIR *dirp)``

        传入文件夹结构体，关闭文件夹，释放内存

        若失败，返回-1

    ``dirent readdir(DIR *dir)``

        传入文件夹结构体，读入文件夹里的内容，并打包为dirent结构体返回

## 宏定义：

    文件夹类型：

    ``#define VFS_IF_FILE (1UL << 0)``

    ``#define VFS_IF_DIR (1UL << 1)``

    ``#define VFS_IF_DEVICE (1UL << 2)``

    缓冲区长度的默认值

    ``#define DIR_BUF_SIZE 256``

Other Versions v: V0.1.4

Tags
  V0.1.0
  V0.1.1
  V0.1.10
  V0.1.2
  V0.1.3
  V0.1.4
  V0.1.5
  V0.1.6
  V0.1.7
  V0.1.8
  V0.1.9
  V0.2.0
  V0.3.0
  V0.4.0

Branches
  master