目录与文件层次

目录是一种特殊的文件,其内容是文件名到索引节点(inode)的映射表。Unix文件系统以目录为节点构建了层次化的文件树结构。

目录操作函数

  • opendir:打开一个目录,返回 DIR* 指针。
  • readdir:读取目录中的下一个条目,返回 struct dirent*dirent 结构包含文件名(d_name)和inode编号(d_ino)。
  • closedir:关闭目录。
  • stat 也可用于目录,通过 S_ISDIR 判断。

当前工作目录(CWD)

  • 每个进程都有一个当前工作目录,是解析相对路径的起点。
  • getcwd:获取当前工作目录的绝对路径。
  • chdir:更改当前工作目录。Shell的 cd 命令即调用 chdir 实现。

目录层次结构

  • 根目录 / 是整个文件系统的起点。
  • 目录形成树状结构,通过 / 分隔路径名。
  • .. 表示父目录,. 表示当前目录。

chdir 只影响调用进程自身的工作目录,不影响父进程(如Shell)。因此Shell的 cd 必须是内建命令,不能作为外部进程执行。

链接到