前言

// 倾听老年人的故事, 让人心情平和了很多 

呵呵 这个命令 应该是 linux 使用者 基本上都会使用到的吧?

呵呵 我们这里主要是 看一下 这个命令是如何工作的

main 中主要是参数处理, 主流程判断处理

-L 获取 逻辑pwd, 方式是从 环境变量 中获取 PWD 返回

-P 获取 物理pwd, 方式是使用 getpwd 函数, 或者 robust_getpwd

robust_getpwd 封装的类似于 getpwd 的函数, 没有文件路径长度的限制

基于 linux-4.4.0 + coreutils-8.25

调试基于命令 "pwd -L", "pwd -P" 
 

main

主要的业务流程分支

03 pwd 命令_当前路径

 logical_getcwd 

从 env 中获取 PWD, 并校验 一下该路径和当前路径的状态 

03 pwd 命令_linux_02

getcwd

基于 getcwd 获取当前路径, robust_getcwd 兜底 

03 pwd 命令_gnu_03

robust_getcwd  

注释有助于理解 

03 pwd 命令_pwd_04

完