pwdのソースコードを読んでみる
main 343行目 logicalかphysicalかをパースする
o -L, Output the logical working directory, without resolving sym- 17 links (default behavior). 18 19 o -P, Output the physical working directory, with symlinks resolved. 20
369行目 logicalな時の処理 まずはtextual validtion PWD環境変数(wd変数にとる)のバリデーションを行う 条件 - '/'で始まってる - '/./' とか '/../'などが含まれていない
systemcall validation wdのstatと'.'パスに対するstatを取得して、inodeが一緒か判定
379 physicalな時の処理 gnulibのxgetcwdでcwdパスを取得し、問題なければ出力 それでも取得できなかった場合はrobust_getcwdで出力を得る
robust_getcwdはなんかゴリ押しなやり方っぽいけど、find_dir_entryで挫折した