アウトプットは砕けない

21卒学生Webエンジニアのアプトプット

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で挫折した