เจเฉฑเจ เจตเจพเจฐ, เจเฉฑเจ เจเฉฐเจเจฐเจตเจฟเจ เจฆเฉ เจฆเฉเจฐเจพเจจ, เจฎเฉเจจเฉเฉฐ เจชเฉเฉฑเจเจฟเจ เจเจฟเจ เจธเฉ, เจเฉเจเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจ เจเจฟเจนเฉ เจธเฉเจตเจพ เจฎเจฟเจฒเจฆเฉ เจนเฉ เจเฉ เจกเจฟเจธเจ เจตเจฟเฉฑเจ เจธเจชเฉเจธ เจเจคเจฎ เจนเฉเจฃ เจเจพเจฐเจจ เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐ เจฐเจนเฉ เจนเฉ เจคเจพเจ เจคเฉเจธเฉเจ เจเฉ เจเจฐเฉเจเฉ?
เจฌเฉเจธเจผเฉฑเจ, เจฎเฉเจ เจเจตเจพเจฌ เจฆเจฟเฉฑเจคเจพ เจเจฟ เจฎเฉเจ เจฆเฉเจเจพเจเจเจพ เจเจฟ เจเจธ เจเจเฉเจนเจพ 'เจคเฉ เจเฉ เจเจฌเจเจผเจพ เจนเฉ เจ
เจคเฉ, เจเฉ เจนเฉ เจธเจเฉ, เจคเจพเจ เจฎเฉเจ เจเจธ เจเจเฉเจนเจพ เจจเฉเฉฐ เจธเจพเจซเจผ เจเจฐเจพเจเจเจพเฅค
เจซเจฟเจฐ เจเฉฐเจเจฐเจตเจฟเจ เจเจฐเจคเจพ เจจเฉ เจชเฉเฉฑเจเจฟเจ, เจเฉเจเจฐ เจชเจพเจฐเจเฉเจธเจผเจจ 'เจคเฉ เจเฉเจ เจเจพเจฒเฉ เจฅเจพเจ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจ เจซเจพเจเจฒเจพเจ เจตเฉ เจจเจนเฉเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉเจเจ เจเฉ เจธเจพเจฐเฉ เจเจเฉเจนเจพ เจฒเฉ เจฒเจตเฉ?
เจเจธเจฆเฉ เจฒเจ เจฎเฉเจ เจเจฟเจนเจพ เจเจฟ เจคเฉเจธเฉเจ เจนเจฎเฉเจธเจผเจพเจ เจเจชเจจ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐเจพเจ เจจเฉเฉฐ เจตเฉเจ เจธเจเจฆเฉ เจนเฉ, เจเจฆเจพเจนเจฐเจฃ เจฒเจ lsof เจเจฎเจพเจเจก เจจเจพเจฒ, เจ เจคเฉ เจธเจฎเจ เจธเจเจฆเฉ เจนเฉ เจเจฟ เจเจฟเจนเฉเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉ เจธเจพเจฐเฉ เจเจชเจฒเจฌเจง เจเจเฉเจนเจพ เจจเฉเฉฐ เจฒเฉ เจฒเจฟเจ เจนเฉ, เจ เจคเฉ เจซเจฟเจฐ เจคเฉเจธเฉเจ เจธเจฅเจฟเจคเฉเจเจ เจฆเฉ เจ เจจเฉเจธเจพเจฐ เจเฉฐเจฎ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจเจน เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจกเฉเจเจพ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจพเจ เจจเจนเฉเจเฅค .
เจเฉฐเจเจฐเจตเจฟเจเจฐ เจจเฉ เจฎเฉเจจเฉเฉฐ เจเจเจฐเฉ เจธเจผเจฌเจฆ 'เจคเฉ เจฐเฉเจเจฟเจ, เจเจชเจฃเฉ เจธเจตเจพเจฒ เจจเฉเฉฐ เจเฉเฉเจฟเจ: "เจฎเฉฐเจจ เจฒเจ เจเจฟ เจธเจพเจจเฉเฉฐ เจกเฉเจเจพ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ, เจเจน เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจกเฉเจฌเฉฑเจ เจฒเฉเจ เจนเฉ, เจชเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐเจฆเฉ เจเจฟเจเจเจเจฟ เจเจน เจกเฉเจฌเฉฑเจ เจจเจนเฉเจ เจฒเจฟเจ เจธเจเจฆเจพ"?
"เจ เฉเจ เจนเฉ," เจฎเฉเจ เจเจตเจพเจฌ เจฆเจฟเฉฑเจคเจพ, "เจ
เจธเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจกเฉเจฌเฉฑเจ เจจเฉเฉฐ เจฌเฉฐเจฆ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจ
เจคเฉ เจเจธเจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค"
เจเฉฐเจเจฐเจตเจฟเจเจฐ เจจเฉ เจเจคเจฐเจพเจเจผ เจเฉเจคเจพ: "เจจเจนเฉเจ, เจ
เจธเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจฐเฉเจธเจเจพเจฐเจ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ, เจธเจพเจกเฉ เจเฉเจฒ เจ
เจเฉ เจตเฉ เจฎเฉเจฎเฉเจฐเฉ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเฉเจคเจพ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจกเฉเจเจพ เจนเฉ, เจ
เจคเฉ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจเจฒเจพเจเฉฐเจเจธ เจเฉเจฆ เจธเฉเจตเจพ เจจเจพเจฒ เจเฉเฉเฉ เจนเฉเจ เจนเจจ, เจเจฟเจธ เจจเฉเฉฐ เจ
เจธเฉเจ เจฆเฉเจฌเจพเจฐเจพ เจเฉเฉเจจ เจฒเจ เจฎเจเจฌเฉเจฐ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค"
โเจ เฉเจ เจนเฉ,โ เจฎเฉเจ เจเจฟเจนเจพ, โเจเฉ เจ เจธเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจฐเฉเจธเจเจพเจฐเจ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจกเฉเจเจพ เจธเจพเจกเฉ เจฒเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจจเจนเฉเจ เจนเฉ, เจคเจพเจ เจ เจธเฉเจ เจเจธ เจเจชเจจ เจซเจพเจเจฒ เจจเฉเฉฐ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจฆเฉเจเจฐเจพ เจธเจพเจซเจผ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ, เจญเจพเจตเฉเจ เจ เจธเฉเจ เจเจธเจจเฉเฉฐ ls เจเจฎเจพเจเจก เจตเจฟเฉฑเจ เจจเจนเฉเจ เจตเฉเจเจฆเฉ เจนเจพเจเฅค เจซเจพเจเจฒ เจธเจฟเจธเจเจฎ เจเฉฑเจคเฉเฅค"
เจเฉฐเจเจฐเจตเจฟเจ เจฒเฉเจฃ เจตเจพเจฒเจพ เจเฉเจธเจผ เจธเฉ, เจชเจฐ เจฎเฉเจ เจจเจนเฉเจ เจธเฉเฅค
เจซเจฟเจฐ เจฎเฉเจ เจธเฉเจเจฟเจ, เจฎเฉเจฐเฉ เจเจฟเจเจจ เจฆเฉ เจชเจฐเจ เจเจฐเจจ เจตเจพเจฒเจพ เจตเจฟเจ
เจเจคเฉ เจกเฉเฉฐเจเจพ เจเจฟเจเจ เจจเจนเฉเจ เจเจฐเจฆเจพ? เจชเจฐ เจเจฆเฉเจ เจเฉ เจเฉ เจกเฉเจเจพ เจธเจญ เจคเฉเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจฃ เจนเฉ? เจเจฆเฉเจ เจเฉ เจเฉ เจ
เจธเฉเจ เจเฉฑเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ, เจ
เจคเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเฉฑเจ เจญเจพเจ เจเฉฑเจคเฉ เจซเจพเจเจฒ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจฒเจฟเจเจฆเฉ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉเจ เจเจพเจฒเฉ เจฅเจพเจ เจจเจนเฉเจ เจนเฉ? เจเจฆเฉเจ เจเฉ เจเฉ เจ
เจธเฉเจ เจจเจพ เจธเจฟเจฐเจซเจผ เจเจธ เจกเฉเจเจพ เจจเฉเฉฐ เจเฉเจ เจธเจเจฆเฉ เจนเจพเจ เจเฉ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฒเจฟเจเจฟเจ เจเจพ เจเฉเฉฑเจเจพ เจนเฉ, เจธเจเฉเจ เจเจน เจกเฉเจเจพ เจตเฉ เจเฉ เจเจน เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฒเจฟเจเจฆเฉ เจนเฉ เจเจพเจ เจฒเจฟเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเฉ เจนเฉ?
เจคเฉเจเจผเจฟเจ
เจเจชเจฃเฉ เจเจฐเฉเจ เจฐ เจฆเฉ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ, เจฎเฉเจ เจเฉฑเจ เจเฉเจเฉ เจเจฟเจนเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเฉเจคเฉ เจเจฟเจธเจฆเฉ เจเจชเจญเฉเจเจคเจพ เจเจพเจฃเจเจพเจฐเฉ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจธเฉเฅค เจ เจคเฉ เจซเจฟเจฐ เจฎเฉเจ เจธเฉเจเจฟเจ, เจฎเฉเจ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจเจธเจฆเฉ เจกเฉเจเจพ เจจเจพเจฒ เจเจฟเจตเฉเจ เจฎเจฟเจฒเจพ เจธเจเจฆเจพ เจนเจพเจ. เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจฎเฉเจฐเฉ เจเฉเจฒ เจเจตเจพเจจเฉเจต เจเจตเจพเจจ เจเจตเจพเจจเฉเจตเจฟเจ เจนเฉ, เจ เจคเฉ เจเจธ เจเฉเจฒ เจเฉเจ เจเจพเจฃเจเจพเจฐเฉ เจนเฉ, เจชเจฐ เจฎเฉเจ เจเจจเฉเจนเจพเจ เจจเจพเจฒ เจฆเฉเจธเจคเฉ เจเจฟเจตเฉเจ เจเจฐ เจธเจเจฆเจพ เจนเจพเจ? เจฎเฉเจ เจธเจฟเฉฑเจงเฉ เจคเฉเจฐ 'เจคเฉ เจฆเฉฑเจธ เจธเจเจฆเจพ เจนเจพเจ เจเจฟ "เจคเฉเจเจผเจฟเจ" เจจเจพเจฎ เจฆเจพ เจเฉเฉฑเจคเจพ เจเจธ เจเจตเจพเจจ เจฆเจพ เจนเฉเฅค เจชเจฐ เจเจฆเฉเจ เจเฉ เจเฉ เจเจน เจเจชเจฃเจพ เจจเจพเจฎ เจฌเจฆเจฒเจฆเจพ เจนเฉ เจ เจคเฉ เจเจตเจพเจจ เจฆเฉ เจฌเจเจพเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเจฒเฉเจ เจฌเจฃ เจเจพเจเจฆเจพ เจนเฉ? เจซเจฟเจฐ เจเจน เจชเจคเจพ เจเฉฑเจฒเฉเจเจพ เจเจฟ เจธเจพเจกเฉ เจเจฒเฉเจ เจเจตเจพเจจเฉเจตเจจเจพ เจเจตเจพเจจเฉเจตเจพ เจเฉเจฒ เจนเฉเจฃ เจเฉเจ เจเฉเฉฑเจคเจพ เจจเจนเฉเจ เจนเฉเจตเฉเจเจพ, เจ เจคเฉ เจธเจพเจกเจพ เจคเฉเจเจผเจฟเจ เจ เจเฉ เจตเฉ เจเฉเจฐ-เจฎเฉเจเฉเจฆ เจเจตเจพเจจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉเจตเฉเจเจพ. เจเฉฑเจ เจกเฉเจเจพเจฌเฉเจธ เจเจฟเจธ เจจเฉ เจนเจฐเฉเจ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจเฉฑเจ เจตเจฟเจฒเฉฑเจเจฃ เจชเจเจพเจฃเจเจฐเจคเจพ (เจเจเจกเฉ) เจฆเจฟเฉฑเจคเจพ เจธเฉ, เจจเฉ เจเจธ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจตเจฟเฉฑเจ เจฎเจฆเจฆ เจเฉเจคเฉ, เจ เจคเฉ เจฎเฉเจฐเจพ เจเฉเจเจผเจฟเจ เจเจธ เจเจเจกเฉ เจจเจพเจฒ เจเฉเฉเจฟเจ เจนเฉเจเจ เจธเฉ, เจเฉ เจเจฟ เจ เจธเจฒ เจตเจฟเฉฑเจ, เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจธเฉเจฐเฉเจ เจฒ เจจเฉฐเจฌเจฐ เจธเฉเฅค เจเจธ เจคเจฐเฉเจนเจพเจ, เจเจธ เจฆเฉ เจฎเจพเจฒเจ เจเฉเจฒ เจเจเจกเฉ เจจเฉฐเจฌเจฐ 2 เจธเฉ, เจ เจคเฉ เจเจฟเจธเฉ เจธเจฎเฉเจ เจเจตเจพเจจ เจเจธ เจเจเจกเฉ เจฆเฉ เจ เจงเฉเจจ เจธเฉ, เจ เจคเฉ เจซเจฟเจฐ เจเจฒเจฟเจ เจเจธเฉ เจเจเจกเฉ เจฆเฉ เจ เจงเฉเจจ เจฌเจฃ เจเจฟเจเฅค เจฎเจจเฉเฉฑเจเจคเจพ เจ เจคเฉ เจชเจธเจผเฉ เจชเจพเจฒเจฃ เจฆเฉ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจ เจฎเจฒเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจนเฉฑเจฒ เจเฉเจคเจพ เจเจฟเจ เจธเฉ.
เจซเจผเจพเจเจฒ เจตเจฐเจฃเจจเจเจพเจฐ
เจซเจพเจเจฒ เจ
เจคเฉ เจเจธ เจซเจพเจเจฒ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจตเจพเจฒเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเฉ เจธเจฎเฉฑเจธเจฟเจ เจฒเจเจญเจ เจธเจพเจกเฉ เจเฉเฉฑเจคเฉ เจ
เจคเฉ เจเจฆเจฎเฉ เจฆเฉ เจฌเจฐเจพเจฌเจฐ เจนเฉ. เจฎเฉฐเจจ เจฒเจ เจเจฟ เจฎเฉเจ ivan.txt เจจเจพเจฎ เจฆเฉ เจเฉฑเจ เจซเจพเจเจฒ เจเฉเจฒเฉเจนเฉ เจ
เจคเฉ เจเจธ เจตเจฟเฉฑเจ เจธเจผเจฌเจฆ tuzik เจฒเจฟเจเจฃเจพ เจธเจผเฉเจฐเฉ เจเฉเจคเจพ, เจชเจฐ เจฎเฉเจ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจธเจฟเจฐเจซ เจชเจนเจฟเจฒเจพ เจ
เฉฑเจเจฐ "t" เจฒเจฟเจเจฃ เจตเจฟเฉฑเจ เจเจพเจฎเจฏเจพเจฌ เจฐเจฟเจนเจพ, เจ
เจคเฉ เจเจธ เจซเจพเจเจฒ เจฆเจพ เจจเจพเจฎ เจเจฟเจธเฉ เจฆเฉเจเจฐเจพ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, olya.txt. เจชเจฐ เจซเจพเจเจฒ เจเจนเฉ เจฐเจนเจฟเฉฐเจฆเฉ เจนเฉ, เจ
เจคเฉ เจฎเฉเจ เจ
เจเฉ เจตเฉ เจเจธ เจตเจฟเฉฑเจ เจเจชเจฃเจพ เจเจเจพ เจฐเจฟเจเจพเจฐเจก เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ. เจนเจฐ เจตเจพเจฐ เจเจฆเฉเจ เจเฉฑเจ เจธเจฟเจธเจเจฎ เจเจพเจฒ เจฆเฉเจเจฐเจพ เจเฉฑเจ เจซเจพเจเจฒ เจเฉเจฒเฉเจนเฉ เจเจพเจเจฆเฉ เจนเฉ
เจฒเฉเจจเจเจธ เจตเจฟเฉฑเจ, libc เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจนเจฐเฉเจ เจเฉฑเจฒ เจฐเจนเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ (เจชเฉเจฐเจเจฟเจฐเจฟเจ) เจฒเจ 3 เจจเฉฐเจฌเจฐ เจตเจพเจฒเฉเจเจ 0,1,2 เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจซเจพเจเจฒเจพเจ เจเฉเจฒเฉเจนเจฆเฉ เจนเฉเฅค เจตเจงเฉเจฐเฉ เจเจพเจฃเจเจพเจฐเฉ เจฒเจฟเฉฐเจเจพเจ 'เจคเฉ เจชเจพเจ เจเจพ เจธเจเจฆเฉ เจนเฉ
- เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ 0 เจจเฉเฉฐ STDIN เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเจจเจชเฉเจ เจจเจพเจฒ เจเฉเฉเจฟเจ เจนเฉเฉฐเจฆเจพ เจนเฉ
- เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ 1 เจจเฉเฉฐ STDOUT เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉเจเจฐเจพ เจกเฉเจเจพ เจจเฉเฉฐ เจเจเจเจชเฉเฉฑเจ เจเจฐเจจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ เจชเฉเจฐเจฟเฉฐเจ เจเจฎเจพเจเจกเจพเจ
- เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ 2 เจจเฉเฉฐ STDERR เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉเจเจฐเจพ เจเจฒเจคเฉ เจธเฉเจจเฉเจนเจฟเจเจ เจจเฉเฉฐ เจเจเจเจชเฉเฉฑเจ เจเจฐเจจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค
เจเฉ เจคเฉเจนเจพเจกเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจตเจฟเฉฑเจ เจคเฉเจธเฉเจ เจชเฉเฉเจนเจจ เจเจพเจ เจฒเจฟเจเจฃ เจฒเจ เจเฉเจ เจซเจพเจเจฒ เจเฉเจฒเฉเจนเจฆเฉ เจนเฉ, เจคเจพเจ เจธเฉฐเจญเจต เจนเฉ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ เจชเจนเจฟเจฒเฉ เจฎเฉเจซเจค เจเจเจกเฉ เจฎเจฟเจฒเฉเจเฉ เจ เจคเฉ เจเจน เจจเฉฐเจฌเจฐ 3 เจนเฉเจตเฉเจเจพ.
เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐเจพเจ เจฆเฉ เจธเฉเจเฉ เจเจฟเจธเฉ เจตเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฒเจ เจตเฉเจเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ เจเฉเจเจฐ เจคเฉเจธเฉเจ เจเจธเจฆเจพ PID เจเจพเจฃเจฆเฉ เจนเฉเฅค
เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเจ เจฌเฉเจธเจผ เจเฉฐเจธเฉเจฒ เจจเฉเฉฐ เจเฉเจฒเฉเจนเฉเจ เจ เจคเฉ เจธเจพเจกเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ PID เจจเฉเฉฐ เจตเฉเจเฉเจ
[user@localhost ]$ echo $$
15771
เจฆเฉเจเฉ เจเฉฐเจธเฉเจฒ เจตเจฟเฉฑเจ เจเจฒเฉ
[user@localhost ]$ ls -lah /proc/15771/fd/
total 0
dr-x------ 2 user user 0 Oct 7 15:42 .
dr-xr-xr-x 9 user user 0 Oct 7 15:42 ..
lrwx------ 1 user user 64 Oct 7 15:42 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 255 -> /dev/pts/21
เจคเฉเจธเฉเจ เจเจธ เจฒเฉเจ เจฆเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจจเฉฐเจฌเจฐ 255 เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจฐเฉเจช เจจเจพเจฒ เจจเจเจผเจฐเจ เฉฐเจฆเจพเจเจผ เจเจฐ เจธเจเจฆเฉ เจนเฉ; เจเจน เจเจธเจฆเฉเจเจ เจฒเฉเฉเจพเจ เจฒเจ เจฌเฉเจธเจผ เจฆเฉเจเจฐเจพ เจเฉเจฒเฉเจนเจฟเจ เจเจฟเจ เจธเฉ, เจจเจพ เจเจฟ เจฒเจฟเฉฐเจเจก เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉเจเจฐเจพเฅค
เจนเฉเจฃ เจธเจพเจฐเฉเจเจ 3 เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจซเจพเจเจฒเจพเจ เจธเฉเจกเฉ เจเจฐเจฎเฉเจจเจฒ เจกเจฟเจตเจพเจเจธ เจจเจพเจฒ เจเฉเฉเฉเจเจ เจนเฉเจเจเจ เจนเจจ
[user@localhost ]$ echo "hello world" > /proc/15771/fd/0
เจ เจคเฉ เจชเจนเจฟเจฒเฉ เจเฉฐเจธเฉเจฒ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจฆเฉเจเจพเจเจเฉ
[user@localhost ]$ hello world
เจฐเฉเจกเจพเจเจฐเฉเจเจ เจ เจคเฉ เจชเจพเจเจช
เจคเฉเจธเฉเจ เจเจนเจจเจพเจ 3 เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจเจฟเจธเฉ เจตเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ เจเจธเจพเจจเฉ เจจเจพเจฒ เจเจตเจฐเจฐเจพเจเจก เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ bash เจตเฉ เจธเจผเจพเจฎเจฒ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจจเฉเฉฐ เจเฉเฉเจจ เจตเจพเจฒเฉ เจชเจพเจเจช เจฐเจพเจนเฉเจ, เจตเฉเจเฉ
[user@localhost ]$ cat /dev/zero | sleep 10000
เจคเฉเจธเฉเจ เจเจธ เจเจฎเจพเจเจก เจจเฉเฉฐ เจเฉเจฆ เจเจฒเจพ เจธเจเจฆเฉ เจนเฉ strace -f เจ เจคเฉ เจตเฉเจเฉ เจเจฟ เจ เฉฐเจฆเจฐ เจเฉ เจนเฉ เจฐเจฟเจนเจพ เจนเฉ, เจชเจฐ เจฎเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ เจฆเฉฑเจธเจพเจเจเจพเฅค
PID 15771 เจจเจพเจฒ เจธเจพเจกเฉ เจชเฉเจฐเฉเจเจ เจฌเฉเจธเจผ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจธเจพเจกเฉ เจเจฎเจพเจเจก เจจเฉเฉฐ เจชเจพเจฐเจธ เจเจฐเจฆเฉ เจนเฉ เจ เจคเฉ เจธเจฎเจเจฆเฉ เจนเฉ เจเจฟ เจ เจธเฉเจ เจเจฟเฉฐเจจเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจเจฒเจพเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ, เจธเจพเจกเฉ เจเฉเจธ เจตเจฟเฉฑเจ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจฆเฉ เจนเจจ: เจฌเจฟเฉฑเจฒเฉ เจ เจคเฉ เจจเฉเจเจฆเฅค Bash เจเจพเจฃเจฆเจพ เจนเฉ เจเจฟ เจเจธเจจเฉเฉฐ เจฆเฉ เจฌเจพเจฒ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจชเจพเจเจช เจตเจฟเฉฑเจ เจฎเจฟเจฒเจพเจเจฃเจพ เจนเฉเฅค เจเฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจเฉ, เจฌเฉเจธเจผ เจจเฉเฉฐ 2 เจฌเจพเจฒ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจ เจคเฉ เจเฉฑเจ เจชเจพเจเจช เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค
Bash เจเจพเจเจฒเจก เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฌเจฃเจพเจเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉฑเจ เจธเจฟเจธเจเจฎ เจเจพเจฒ เจเจฒเจพเจเจเจฆเจพ เจนเฉ
เจชเฉเจฐเฉเจเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฒเจ, เจ เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเฉฑเจ เจชเจพเจเจช เจนเฉ, เจชเจฐ เจ เจเฉ เจคเฉฑเจ เจเฉเจ เจฌเจพเจฒ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจจเจนเฉเจ เจนเจจ:
PID command
15771 bash
lrwx------ 1 user user 64 Oct 7 15:42 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 3 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct 7 15:42 4 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct 7 15:42 255 -> /dev/pts/21
เจซเจฟเจฐ เจธเจฟเจธเจเจฎ เจเจพเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ
PID command
15771 bash
lrwx------ 1 user user 64 Oct 7 15:42 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 3 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct 7 15:42 4 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct 7 15:42 255 -> /dev/pts/21
PID command
9004 bash
lrwx------ 1 user user 64 Oct 7 15:57 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:57 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:57 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:57 3 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct 7 15:57 4 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct 7 15:57 255 -> /dev/pts/21
PID command
9005 bash
lrwx------ 1 user user 64 Oct 7 15:57 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:57 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:57 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:57 3 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct 7 15:57 4 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct 7 15:57 255 -> /dev/pts/21
เจเจน เจจเจพ เจญเฉเฉฑเจฒเฉ เจเจฟ เจเจฒเฉเจจ เจธเจพเจฐเฉ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐเจพเจ เจฆเฉ เจจเจพเจฒ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจเจฒเฉเจจ เจเจฐเจฆเจพ เจนเฉ, เจเจธเจฒเจ เจเจน เจชเฉเจฐเฉเจเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจ เจคเฉ เจฌเฉฑเจเจฟเจเจ เจตเจฟเฉฑเจ เจเฉฑเจเฉ เจเจฟเจนเฉ เจนเฉเจฃเจเฉเฅค PID 15771 เจฆเฉ เจจเจพเจฒ เจฎเจพเจคเจพ-เจชเจฟเจคเจพ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเจพ เจเฉฐเจฎ เจฌเจพเจฒ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐเจจเจพ เจนเฉ, เจเจธเจฒเจ เจเจน เจธเจฟเจฐเจซเจผ เจฌเฉฑเจเจฟเจเจ เจฆเฉ เจเจตเจพเจฌ เจฆเฉ เจเจกเฉเจ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจธ เจฒเจ, เจเจธ เจจเฉเฉฐ เจชเจพเจเจช เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ, เจ เจคเฉ เจเจน 3 เจ เจคเฉ 4 เจจเฉฐเจฌเจฐ เจตเจพเจฒเฉ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐเจพเจ เจจเฉเฉฐ เจฌเฉฐเจฆ เจเจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
PID 9004 เจจเจพเจฒ เจชเจนเจฟเจฒเฉ เจเจพเจเจฒเจก เจฌเฉเจธเจผ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ, เจธเจฟเจธเจเจฎ เจเจพเจฒ
PID 9005 เจฆเฉ เจจเจพเจฒ เจฆเฉเจเฉ เจเจพเจเจฒเจก เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ, bash เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ STDIN เจจเฉฐเจฌเจฐ 2 เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฒเจ dup0 เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉเฅค เจนเฉเจฃ PID 9005 เจฆเฉ เจจเจพเจฒ เจธเจพเจกเฉ เจฆเฉเจเฉ เจฌเฉเจธเจผ เจเฉ เจตเฉ เจชเฉเฉเจนเฉเจเฉ เจเจน เจชเจพเจเจช เจคเฉเจ เจชเฉเฉเจนเฉ เจเจพเจตเฉเจเฉเฅค
เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ, 3 เจ เจคเฉ 4 เจจเฉฐเจฌเจฐ เจตเจพเจฒเฉ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐเจพเจ เจจเฉเฉฐ เจตเฉ เจเจพเจเจฒเจก เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจตเจฟเฉฑเจ เจฌเฉฐเจฆ เจเจฐ เจฆเจฟเฉฑเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเจฟเจเจเจเจฟ เจเจน เจนเฉเจฃ เจตเจฐเจคเฉ เจจเจนเฉเจ เจเจพเจเจฆเฉ เจนเจจเฅค
เจฎเฉเจ เจเจพเจฃเจฌเฉเฉฑเจ เจเฉ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ 255 เจจเฉเฉฐ เจจเจเจผเจฐเจ เฉฐเจฆเจพเจเจผ เจเจฐเจฆเจพ เจนเจพเจ; เจเจน เจฌเฉเจธเจผ เจฆเฉเจเจฐเจพ เจ เฉฐเจฆเจฐเฉเจจเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจฌเจพเจฒ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจตเจฟเฉฑเจ เจตเฉ เจฌเฉฐเจฆ เจนเฉ เจเจพเจตเฉเจเจพเฅค
เจ
เฉฑเจเฉ, PID 9004 เจจเจพเจฒ เจชเจนเจฟเจฒเฉ เจเจพเจเจฒเจก เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ, bash เจเฉฑเจ เจธเจฟเจธเจเจฎ เจเจพเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเจฆเจพ เจนเฉ
PID 9005 เจฆเฉ เจจเจพเจฒ เจฆเฉเจเฉ เจเจพเจเจฒเจก เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ, bash เจธเจพเจกเฉ เจเฉเจธ /usr/bin/sleep เจตเจฟเฉฑเจ, เจธเจพเจกเฉ เจฆเฉเจเจฐเจพ เจฆเจฐเจธเจพเจ เจเจ เจฆเฉเจเฉ เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจจเฉเฉฐ เจเจฒเจพเจเจเจฆเจพ เจนเฉเฅค
exec เจธเจฟเจธเจเจฎ เจเจพเจฒ เจซเจพเจเจฒ เจนเฉเจเจกเจฒเจเจผ เจจเฉเฉฐ เจฌเฉฐเจฆ เจจเจนเฉเจ เจเจฐเจฆเฉ เจนเฉ เจเจฆเฉเจ เจคเฉฑเจ เจเจฟ เจเจชเจจ เจเจพเจฒ เจฆเฉ เจธเจฎเฉเจ เจเจนเจจเจพเจ เจจเฉเฉฐ O_CLOEXEC เจซเจฒเฉเจ เจจเจพเจฒ เจจเจนเฉเจ เจเฉเจฒเฉเจนเจฟเจ เจเจฟเจ เจธเฉเฅค เจธเจพเจกเฉ เจเฉเจธ เจตเจฟเฉฑเจ, เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ, เจธเจพเจฐเฉ เจฎเฉเจเฉเจฆเจพ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐเจพเจ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
เจเฉฐเจธเฉเจฒ เจตเจฟเฉฑเจ เจเฉเฉฑเจ เจเจฐเฉ:
[user@localhost ]$ pgrep -P 15771
9004
9005
[user@localhost ]$ ls -lah /proc/15771/fd/
total 0
dr-x------ 2 user user 0 Oct 7 15:42 .
dr-xr-xr-x 9 user user 0 Oct 7 15:42 ..
lrwx------ 1 user user 64 Oct 7 15:42 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 255 -> /dev/pts/21
[user@localhost ]$ ls -lah /proc/9004/fd
total 0
dr-x------ 2 user user 0 Oct 7 15:57 .
dr-xr-xr-x 9 user user 0 Oct 7 15:57 ..
lrwx------ 1 user user 64 Oct 7 15:57 0 -> /dev/pts/21
l-wx------ 1 user user 64 Oct 7 15:57 1 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct 7 15:57 2 -> /dev/pts/21
lr-x------ 1 user user 64 Oct 7 15:57 3 -> /dev/zero
[user@localhost ]$ ls -lah /proc/9005/fd
total 0
dr-x------ 2 user user 0 Oct 7 15:57 .
dr-xr-xr-x 9 user user 0 Oct 7 15:57 ..
lr-x------ 1 user user 64 Oct 7 15:57 0 -> pipe:[253543032]
lrwx------ 1 user user 64 Oct 7 15:57 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:57 2 -> /dev/pts/21
[user@localhost ]$ ps -up 9004
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user 9004 0.0 0.0 107972 620 pts/21 S+ 15:57 0:00 cat /dev/zero
[user@localhost ]$ ps -up 9005
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user 9005 0.0 0.0 107952 360 pts/21 S+ 15:57 0:00 sleep 10000
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ, เจธเจพเจกเฉ เจชเจพเจเจช เจฆเฉ เจตเจฟเจฒเฉฑเจเจฃ เจธเฉฐเจเจฟเจ เจฆเฉเจตเจพเจ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจเฉ เจเจฟเจนเฉ เจนเฉเฅค เจเจธ เจคเจฐเฉเจนเจพเจ เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจเฉ เจฎเจพเจคเจพ-เจชเจฟเจคเจพ เจจเจพเจฒ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจตเจฟเจเจเจพเจฐ เจธเจฌเฉฐเจง เจนเฉเฅค
เจเจนเจจเจพเจ เจฒเจ เจเฉ เจธเจฟเจธเจเจฎ เจเจพเจฒเจพเจ เจคเฉเจ เจเจพเจฃเฉ เจจเจนเฉเจ เจนเจจ เจเฉ bash เจตเจฐเจคเจฆเจพ เจนเฉ, เจฎเฉเจ เจธเจเจฐเฉเจธ เจฆเฉเจเจฐเจพ เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจ เจคเฉ เจ เฉฐเจฆเจฐเฉเจจเฉ เจคเฉเจฐ 'เจคเฉ เจเฉ เจนเฉ เจฐเจฟเจนเจพ เจนเฉ เจเจน เจฆเฉเจเจฃ เจฆเฉ เจเจผเฉเจฐเจฆเจพเจฐ เจธเจฟเจซเจพเจฐเจธเจผ เจเจฐเจฆเจพ เจนเจพเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ เจเจธ เจคเจฐเฉเจนเจพเจ:
strace -s 1024 -f bash -c "ls | grep hello"
เจเจ เจเฉฑเจ เจกเจฟเจธเจ เจธเจชเฉเจธ เจ เจคเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจฐเฉเจธเจเจพเจฐเจ เจเฉเจคเฉ เจฌเจฟเจจเจพเจ เจกเจพเจเจพ เจฌเจเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจจ เจตเจพเจฒเฉ เจธเจพเจกเฉ เจธเจฎเฉฑเจธเจฟเจ 'เจคเฉ เจตเจพเจชเจธ เจเจเฅค เจเจฒเฉ เจเฉฑเจ เจเฉเจเจพ เจเจฟเจนเจพ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฒเจฟเจเจฆเฉ เจนเจพเจ เจเฉ เจกเจฟเจธเจ เจเฉฑเจคเฉ เจฒเจเจญเจ 1 เจฎเฉเจเจพเจฌเจพเจเจ เจชเฉเจฐเจคเฉ เจธเจเจฟเฉฐเจ เจฒเจฟเจเฉเจเจพเฅค เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเฉเจเจฐ เจเจฟเจธเฉ เจเจพเจฐเจจ เจเจฐเจเฉ เจ เจธเฉเจ เจกเจฟเจธเจ 'เจคเฉ เจกเฉเจเจพ เจฒเจฟเจเจฃ เจตเจฟเฉฑเจ เจ เจธเจฎเจฐเฉฑเจฅ เจธเฉ, เจคเจพเจ เจ เจธเฉเจ เจเจธเจจเฉเฉฐ เจจเจเจผเจฐเจ เฉฐเจฆเจพเจเจผ เจเจฐเจพเจเจเฉ เจ เจคเฉ เจเฉฑเจ เจธเจเจฟเฉฐเจ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฒเจฟเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจพเจเจเฉเฅค เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ เจฎเฉเจ เจชเจพเจเจฅเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจฐเจฟเจนเจพ เจนเจพเจ, เจคเฉเจธเฉเจ เจเจฟเจธเฉ เจนเฉเจฐ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจญเจพเจธเจผเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ.
[user@localhost ]$ cat openforwrite.py
import datetime
import time
mystr="a"*1024*1024+"n"
with open("123.txt", "w") as f:
while True:
try:
f.write(str(datetime.datetime.now()))
f.write(mystr)
f.flush()
time.sleep(1)
except:
pass
เจเจ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจจเฉเฉฐ เจเจฒเจพเจเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐเจพเจ เจจเฉเฉฐ เจตเฉเจเจฆเฉ เจนเจพเจ
[user@localhost ]$ python openforwrite.py &
[1] 3762
[user@localhost ]$ ps axuf | grep [o]penforwrite
user 3762 0.0 0.0 128600 5744 pts/22 S+ 16:28 0:00 | _ python openforwrite.py
[user@localhost ]$ ls -la /proc/3762/fd
total 0
dr-x------ 2 user user 0 Oct 7 16:29 .
dr-xr-xr-x 9 user user 0 Oct 7 16:29 ..
lrwx------ 1 user user 64 Oct 7 16:29 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 7 16:29 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 7 16:29 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct 7 16:29 3 -> /home/user/123.txt
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจตเฉเจ เจธเจเจฆเฉ เจนเฉ, เจธเจพเจกเฉ เจเฉเจฒ เจธเจพเจกเฉ 3 เจธเจเฉเจเจกเจฐเจก เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจนเจจ เจ เจคเฉ เจเฉฑเจ เจนเฉเจฐ เจเฉ เจ เจธเฉเจ เจเฉเจฒเฉเจนเจฟเจ เจนเฉเฅค เจเจ เจซเจพเจเจฒ เจฆเฉ เจเจเจพเจฐ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจ:
[user@localhost ]$ ls -lah 123.txt
-rw-rw-r-- 1 user user 117M Oct 7 16:30 123.txt
เจกเฉเจเจพ เจฒเจฟเจเจฟเจ เจเจพ เจฐเจฟเจนเจพ เจนเฉ, เจ เจธเฉเจ เจซเจพเจเจฒ 'เจคเฉ เจ เจจเฉเจฎเจคเฉเจเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเฉ เจนเจพเจ:
[user@localhost ]$ sudo chown root: 123.txt
[user@localhost ]$ ls -lah 123.txt
-rw-rw-r-- 1 root root 168M Oct 7 16:31 123.txt
[user@localhost ]$ ls -lah 123.txt
-rw-rw-r-- 1 root root 172M Oct 7 16:31 123.txt
เจ เจธเฉเจ เจฆเฉเจเจฆเฉ เจนเจพเจ เจเจฟ เจกเฉเจเจพ เจ เจเฉ เจตเฉ เจฒเจฟเจเจฟเจ เจเจพ เจฐเจฟเจนเจพ เจนเฉ, เจนเจพเจฒเจพเจเจเจฟ เจธเจพเจกเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจฒเจฟเจเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจจเจนเฉเจ เจนเฉเฅค เจเจ เจเจธเจจเฉเฉฐ เจนเจเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจ:
[user@localhost ]$ sudo rm 123.txt
[user@localhost ]$ ls 123.txt
ls: cannot access 123.txt: No such file or directory
เจกเฉเจเจพ เจเจฟเฉฑเจฅเฉ เจฒเจฟเจเจฟเจ เจเจฟเจ เจนเฉ? เจ เจคเฉ เจเฉ เจเจน เจฌเจฟเจฒเจเฉเจฒ เจฒเจฟเจเฉ เจเจ เจนเจจ? เจ เจธเฉเจ เจเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ:
[user@localhost ]$ ls -la /proc/3762/fd
total 0
dr-x------ 2 user user 0 Oct 7 16:29 .
dr-xr-xr-x 9 user user 0 Oct 7 16:29 ..
lrwx------ 1 user user 64 Oct 7 16:29 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 7 16:29 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 7 16:29 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct 7 16:29 3 -> /home/user/123.txt (deleted)
เจนเจพเจ, เจธเจพเจกเจพ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจ เจเฉ เจตเฉ เจฎเฉเจเฉเจฆ เจนเฉ เจ เจคเฉ เจ เจธเฉเจ เจเจธ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจจเฉเฉฐ เจเจชเจฃเฉ เจชเฉเจฐเจพเจฃเฉ เจซเจพเจเจฒ เจตเจพเจเจ เจตเจฐเจค เจธเจเจฆเฉ เจนเจพเจ, เจ เจธเฉเจ เจเจธเจจเฉเฉฐ เจชเฉเฉเจน เจธเจเจฆเฉ เจนเจพเจ, เจธเจพเจซเจผ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเจพเจชเฉ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค
เจเจ เจซเจพเจเจฒ เจฆเฉ เจเจเจพเจฐ เจจเฉเฉฐ เจตเฉเจเฉเจ:
[user@localhost ]$ lsof | grep 123.txt
python 31083 user 3w REG 8,5 19923457 2621522 /home/user/123.txt
เจซเจพเจเจฒ เจฆเจพ เจเจเจพเจฐ 19923457 เจนเฉเฅค เจเจ เจซเจพเจเจฒ เจจเฉเฉฐ เจธเจพเจซเจผ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจ:
[user@localhost ]$ truncate -s 0 /proc/31083/fd/3
[user@localhost ]$ lsof | grep 123.txt
python 31083 user 3w REG 8,5 136318390 2621522 /home/user/123.txt
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจตเฉเจ เจธเจเจฆเฉ เจนเฉ, เจซเจพเจเจฒ เจฆเจพ เจเจเจพเจฐ เจธเจฟเจฐเจซ เจตเจง เจฐเจฟเจนเจพ เจนเฉ เจ
เจคเฉ เจธเจพเจกเฉ เจคเจฃเฉ เจจเฉ เจเฉฐเจฎ เจจเจนเฉเจ เจเฉเจคเจพ. เจเจ เจธเจฟเจธเจเจฎ เจเจพเจฒ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจจเฉเฉฐ เจตเฉเจเฉเจ
with open("123.txt", "w") as f:
เจธเจพเจจเฉเฉฐ เจชเจพเจเจฃเจพ เจชเจตเฉเจเจพ
with open("123.txt", "a") as f:
"w" เจซเจฒเฉเจ เจจเจพเจฒ เจเจพเจเจ เจเจฐ เจฐเจฟเจนเจพ เจนเฉ
[user@localhost ]$ strace -e trace=open python openforwrite.py 2>&1| grep 123.txt
open("123.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
เจ เจคเฉ "a" เจเฉฐเจกเฉ เจจเจพเจฒ
[user@localhost ]$ strace -e trace=open python openforwrite.py 2>&1| grep 123.txt
open("123.txt", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจเฉฑเจฒ เจฐเจนเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจชเฉเจฐเฉเจเฉเจฐเจพเจฎ เจเจฐเจจเจพ
เจ เจเจธเจฐ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฐ, เจชเฉเจฐเฉเจเจฐเจพเจฎเจพเจ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจ เจคเฉ เจเจพเจเจเจฃ เจตเฉเจฒเฉ, เจกเฉเจฌเฉฑเจเจฐ (เจเจฆเจพเจนเจฐเจจ เจฒเจ GDB) เจเจพเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจตเจฟเฉฑเจ เจฒเฉเจเจฟเฉฐเจ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจชเฉฑเจงเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจจเฅค เจฒเฉเจจเจเจธ เจ เจธเจฒ เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจเฉฑเจฒ เจฐเจนเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจจเฉเฉฐ เจฒเจฟเจเจฃ เจ เจคเฉ เจฌเจฆเจฒเจฃ เจฆเฉ เจธเจฎเจฐเฉฑเจฅเจพ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจตเฉเจฐเฉเจเจฌเจฒ เจฆเฉ เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฃเจพ, เจเฉฑเจ เจฌเฉเจฐเฉเจเจชเฉเจเจเฉฐเจ เจธเฉเฉฑเจ เจเจฐเจจเจพ, เจเจฆเจฟ, เจเจฆเจฟเฅค
เจเฉฑเจ เจซเจพเจเจฒ เจฒเจฟเจเจฃ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจกเจฟเจธเจ เจธเจชเฉเจธ เจจเจพ เจนเฉเจฃ เจฌเจพเจฐเฉ เจ เจธเจฒ เจธเจตเจพเจฒ 'เจคเฉ เจตเจพเจชเจธ เจเจ, เจเจ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจจเจเจฒ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจเฅค
เจเจ เจเจชเจฃเฉ เจญเจพเจ เจฒเจ เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจพเจเจ, เจเจฟเจธ เจจเฉเฉฐ เจ เจธเฉเจ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจกเจฟเจธเจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจฎเจพเจเจเจ เจเจฐเจพเจเจเฉ:
[user@localhost ~]$ dd if=/dev/zero of=~/tempfile_for_article.dd bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00525929 s, 2.0 GB/s
[user@localhost ~]$
เจเจฒเฉ เจเฉฑเจ เจซเจพเจเจฒ เจธเจฟเจธเจเจฎ เจฌเจฃเจพเจเจ:
[user@localhost ~]$ mkfs.ext4 ~/tempfile_for_article.dd
mke2fs 1.42.9 (28-Dec-2013)
/home/user/tempfile_for_article.dd is not a block special device.
Proceed anyway? (y,n) y
...
Writing superblocks and filesystem accounting information: done
[user@localhost ~]$
เจซเจพเจเจฒ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจฎเจพเจเจเจ เจเจฐเฉ:
[user@localhost ~]$ sudo mount ~/tempfile_for_article.dd /mnt/
[sudo] password for user:
[user@localhost ~]$ df -h | grep mnt
/dev/loop0 8.7M 172K 7.9M 3% /mnt
เจ เจธเฉเจ เจเจชเจฃเฉ เจฎเจพเจฒเจ เจจเจพเจฒ เจเฉฑเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ:
[user@localhost ~]$ sudo mkdir /mnt/logs
[user@localhost ~]$ sudo chown user: /mnt/logs
เจเจ เจธเจฟเจฐเจซ เจธเจพเจกเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจตเจฟเฉฑเจ เจฒเจฟเจเจฃ เจฒเจ เจซเจพเจเจฒ เจเฉเจฒเฉเจนเฉเจ:
with open("/mnt/logs/123.txt", "w") as f:
เจฒเจพเจเจ เจเจฐเฉ
[user@localhost ]$ python openforwrite.py
เจ เจธเฉเจ เจเฉเจ เจธเจเจฟเฉฐเจเจพเจ เจฆเฉ เจเจกเฉเจ เจเจฐเจฆเฉ เจนเจพเจ
[user@localhost ~]$ df -h | grep mnt
/dev/loop0 8.7M 8.0M 0 100% /mnt
เจเจธ เจฒเจ, เจธเจพเจกเฉ เจเฉเจฒ เจเจธ เจฒเฉเจ เจฆเฉ เจธเจผเฉเจฐเฉ เจตเจฟเจ เจฆเฉฑเจธเฉ เจเจ เจธเจฎเฉฑเจธเจฟเจ เจนเฉ. เจเจพเจฒเฉ เจฅเจพเจ 0, 100% เจเจฌเจเจผเฉ เจตเจฟเฉฑเจ เจนเฉเฅค
เจธเจพเจจเฉเฉฐ เจฏเจพเจฆ เจนเฉ เจเจฟ เจเฉฐเจฎ เจฆเฉเจเจ เจธเจผเจฐเจคเจพเจ เจฆเฉ เจ เจจเฉเจธเจพเจฐ, เจ เจธเฉเจ เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจกเฉเจเจพ เจจเฉเฉฐ เจฐเจฟเจเจพเจฐเจก เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐ เจฐเจนเฉ เจนเจพเจ เจเฉ เจเฉเฉฐเจฎ เจจเจนเฉเจ เจนเฉ เจธเจเจฆเจพ. เจ เจคเฉ เจเจธเฉ เจธเจฎเฉเจ, เจธเจพเจจเฉเฉฐ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเฉเจคเฉ เจฌเจฟเจจเจพเจ เจธเฉเจตเจพ เจจเฉเฉฐ เจ เฉเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจฎเฉฐเจจ เจฒเจ เจเจฟ เจธเจพเจกเฉ เจเฉเจฒ เจ เจเฉ เจตเฉ เจกเจฟเจธเจ เจธเจชเฉเจธ เจนเฉ, เจชเจฐ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจญเจพเจ เจตเจฟเฉฑเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ /home เจตเจฟเฉฑเจเฅค
เจเจ เจธเจพเจกเฉ เจเฉเจก เจจเฉเฉฐ โเจเฉฑเจกเจฃ เจเฉฑเจคเฉ เจฆเฉเจฌเจพเจฐเจพ เจชเฉเจฐเฉเจเจฐเจพเจฎโ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจเฅค
เจเจ เจธเจพเจกเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ PID เจจเฉเฉฐ เจตเฉเจเฉเจ, เจเจฟเจธ เจจเฉ เจธเจพเจฐเฉ เจกเจฟเจธเจ เจธเจชเฉเจธ เจเจพ เจฒเจ เจนเฉ:
[user@localhost ~]$ ps axuf | grep [o]penfor
user 10078 27.2 0.0 128600 5744 pts/22 R+ 11:06 0:02 | _ python openforwrite.py
gdb เจฐเจพเจนเฉเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเจพเจฒ เจเฉเฉเฉ
[user@localhost ~]$ gdb -p 10078
...
(gdb)
เจเจ เจเจชเจจ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐเจพเจ เจจเฉเฉฐ เจตเฉเจเฉเจ:
(gdb) shell ls -lah /proc/10078/fd/
total 0
dr-x------ 2 user user 0 Oct 8 11:06 .
dr-xr-xr-x 9 user user 0 Oct 8 11:06 ..
lrwx------ 1 user user 64 Oct 8 11:09 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:09 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:06 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct 8 11:09 3 -> /mnt/logs/123.txt
เจ เจธเฉเจ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจจเฉฐเจฌเจฐ 3 เจฌเจพเจฐเฉ เจเจพเจฃเจเจพเจฐเฉ เจฆเฉเจเจฆเฉ เจนเจพเจ, เจเฉ เจธเจพเจกเฉ เจฆเจฟเจฒเจเจธเจชเฉ เจนเฉ
(gdb) shell cat /proc/10078/fdinfo/3
pos: 8189952
flags: 0100001
mnt_id: 482
เจชเจพเจเจฅเจจ เจฆเฉเจเจฐเจพ เจธเจฟเจธเจเจฎ เจเจพเจฒ เจจเฉเฉฐ เจงเจฟเจเจจ เจตเจฟเฉฑเจ เจฐเฉฑเจเจฆเฉ เจนเฉเจ (เจเฉฑเจชเจฐ เจฆเฉเจเฉ เจเจฟ เจ
เจธเฉเจ เจเจฟเฉฑเจฅเฉ เจธเจเฉเจฐเฉเจธ เจเจฒเจพเจ เจ
เจคเฉ เจเจชเจจ เจเจพเจฒ เจฒเฉฑเจญเฉ), เจเจฆเฉเจ เจเฉฑเจ เจซเจพเจเจฒ เจเฉเจฒเฉเจนเจฃ เจฒเจ เจธเจพเจกเฉ เจเฉเจก เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเจฆเฉ เจนเฉเจ, เจ
เจธเฉเจ เจเจชเจฃเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจคเจฐเจซเฉเจ เจเจนเฉ เจเจฐเจฆเฉ เจนเจพเจ, เจชเจฐ เจธเจพเจจเฉเฉฐ O_WRONLY|O_CREAT| O_TRUNC เจฌเจฟเฉฑเจ เจเฉฑเจ เจธเฉฐเจเจฟเจเจคเจฎเจ เจฎเฉเฉฑเจฒ เจจเจพเจฒ เจฌเจฆเจฒเจฆเฉ เจนเจจเฅค เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจเจฐเจจเจฒ เจธเจฐเฉเจค เจเฉเจฒเฉเจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ
# เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค O_WRONLY 00000001
# O_CREAT 00000100 เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเฉ
# O_TRUNC 00001000 เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเฉ
เจ เจธเฉเจ เจธเจพเจฐเฉ เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจตเจฟเฉฑเจ เจเฉเฉเจฆเฉ เจนเจพเจ, เจธเจพเจจเฉเฉฐ 00001101 เจฎเจฟเจฒเจฆเจพ เจนเฉ
เจ เจธเฉเจ gdb เจคเฉเจ เจเจชเจฃเฉ เจเจพเจฒ เจเจฒเจพเจเจเจฆเฉ เจนเจพเจ
(gdb) call open("/home/user/123.txt", 00001101,0666)
$1 = 4
เจเจธ เจฒเจ เจธเจพเจจเฉเฉฐ เจจเฉฐเจฌเจฐ 4 เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจจเจตเจพเจ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจ เจคเฉ เจเฉฑเจ เจนเฉเจฐ เจญเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจจเจตเฉเจ เจเจชเจจ เจซเจพเจเจฒ เจฎเจฟเจฒเฉ, เจ เจธเฉเจ เจเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ:
(gdb) shell ls -lah /proc/10078/fd/
total 0
dr-x------ 2 user user 0 Oct 8 11:06 .
dr-xr-xr-x 9 user user 0 Oct 8 11:06 ..
lrwx------ 1 user user 64 Oct 8 11:09 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:09 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:06 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct 8 11:09 3 -> /mnt/logs/123.txt
l-wx------ 1 user user 64 Oct 8 11:15 4 -> /home/user/123.txt
เจ เจธเฉเจ เจชเจพเจเจช เจฆเฉ เจจเจพเจฒ เจเจฆเจพเจนเจฐเจจ เจจเฉเฉฐ เจฏเจพเจฆ เจฐเฉฑเจเจฆเฉ เจนเจพเจ - เจฌเฉเจธเจผ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐเจพเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจฌเจฆเจฒเจฆเจพ เจนเฉ, เจ เจคเฉ เจ เจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ dup2 เจธเจฟเจธเจเจฎ เจเจพเจฒ เจธเจฟเฉฑเจ เจเฉเฉฑเจเฉ เจนเจพเจเฅค
เจ เจธเฉเจ เจเฉฑเจ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจจเฉเฉฐ เจฆเฉเจเฉ เจจเจพเจฒ เจฌเจฆเจฒเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเฉ เจนเจพเจ
(gdb) call dup2(4,3)
$2 = 3
เจ เจธเฉเจ เจเจพเจเจเจฆเฉ เจนเจพเจ:
(gdb) shell ls -lah /proc/10078/fd/
total 0
dr-x------ 2 user user 0 Oct 8 11:06 .
dr-xr-xr-x 9 user user 0 Oct 8 11:06 ..
lrwx------ 1 user user 64 Oct 8 11:09 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:09 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:06 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct 8 11:09 3 -> /home/user/123.txt
l-wx------ 1 user user 64 Oct 8 11:15 4 -> /home/user/123.txt
เจ เจธเฉเจ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ 4 เจจเฉเฉฐ เจฌเฉฐเจฆ เจเจฐเจฆเฉ เจนเจพเจ, เจเจฟเจเจเจเจฟ เจธเจพเจจเฉเฉฐ เจเจธเจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ:
(gdb) call close (4)
$1 = 0
เจ เจคเฉ gdb เจคเฉเจ เจฌเจพเจนเจฐ เจเจพเจ
(gdb) quit
A debugging session is active.
Inferior 1 [process 10078] will be detached.
Quit anyway? (y or n) y
Detaching from program: /usr/bin/python2.7, process 10078
เจจเจตเฉเจ เจซเจพเจเจฒ เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจนเฉ:
[user@localhost ~]$ ls -lah /home/user/123.txt
-rw-rw-r-- 1 user user 5.1M Oct 8 11:18 /home/user/123.txt
[user@localhost ~]$ ls -lah /home/user/123.txt
-rw-rw-r-- 1 user user 7.1M Oct 8 11:18 /home/user/123.txt
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจตเฉเจ เจธเจเจฆเฉ เจนเฉ, เจกเฉเจเจพ เจจเฉเฉฐ เจเฉฑเจ เจจเจตเฉเจ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจฒเจฟเจเจฟเจ เจเจฟเจ เจนเฉ, เจเจ เจชเฉเจฐเจพเจฃเฉ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจ:
[user@localhost ~]$ ls -lah /mnt/logs/123.txt
-rw-rw-r-- 1 user user 7.9M Oct 8 11:08 /mnt/logs/123.txt
เจเฉเจ เจกเจพเจเจพ เจเจคเจฎ เจจเจนเฉเจ เจนเฉเฉฐเจฆเจพ, เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเฉ, เจฒเฉเจเจธ เจจเฉเฉฐ เจเฉฑเจ เจจเจตเฉเจ เจธเจฅเจพเจจ 'เจคเฉ เจฒเจฟเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค
เจเจ เจเฉฐเจฎ เจจเฉเฉฐ เจฅเฉเฉเจพ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจเจฐเฉเจ
เจเจฒเฉ เจเจฒเจชเจจเจพ เจเจฐเฉเจ เจเจฟ เจกเฉเจเจพ เจธเจพเจกเฉ เจฒเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉ, เจชเจฐ เจธเจพเจกเฉ เจเฉเจฒ เจเจฟเจธเฉ เจตเฉ เจญเจพเจ เจตเจฟเฉฑเจ เจกเจฟเจธเจ เจธเจชเฉเจธ เจจเจนเฉเจ เจนเฉ เจ เจคเฉ เจ เจธเฉเจ เจกเจฟเจธเจ เจจเฉเฉฐ เจเจจเฉเจเจ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค
เจ
เจธเฉเจ เจเฉ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจธเจพเจกเฉ เจกเฉเจเจพ เจจเฉเฉฐ เจเจฟเจคเฉ เจฐเฉเจกเจพเจเจฐเฉเจเจ เจเจฐเจจเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ เจชเจพเจเจช เจฒเจ, เจ
เจคเฉ เจฌเจฆเจฒเฉ เจตเจฟเฉฑเจ เจเจฟเจธเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเฉเจเจฐเจพ เจชเจพเจเจช เจคเฉเจ เจจเฉเฉฑเจเจตเจฐเจ เจตเจฟเฉฑเจ เจกเจพเจเจพ เจฐเฉเจกเจพเจเจฐเฉเจเจ เจเจฐเจจเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ เจจเฉเฉฑเจเจเฉเจเฅค
เจ
เจธเฉเจ mkfifo เจเจฎเจพเจเจก เจจเจพเจฒ เจเฉฑเจ เจจเจพเจฎเฉ เจชเจพเจเจช เจฌเจฃเจพ เจธเจเจฆเฉ เจนเจพเจเฅค เจเจน เจซเจพเจเจฒ เจธเจฟเจธเจเจฎ เจเฉฑเจคเฉ เจเฉฑเจ เจธเฉเจกเฉ เจซเจพเจเจฒ เจฌเจฃเจพเจเจเจพ เจญเจพเจตเฉเจ เจเจธ เจเฉฑเจคเฉ เจเฉเจ เจเจพเจฒเฉ เจฅเจพเจ เจจเจนเฉเจ เจนเฉเฅค
เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจฐเฉเจธเจเจพเจฐเจ เจเจฐเฉ เจ เจคเฉ เจเจพเจเจ เจเจฐเฉ:
[user@localhost ]$ python openforwrite.py
[user@localhost ~]$ ps axuf | grep [o]pen
user 5946 72.9 0.0 128600 5744 pts/22 R+ 11:27 0:20 | _ python openforwrite.py
[user@localhost ~]$ ls -lah /proc/5946/fd
total 0
dr-x------ 2 user user 0 Oct 8 11:27 .
dr-xr-xr-x 9 user user 0 Oct 8 11:27 ..
lrwx------ 1 user user 64 Oct 8 11:28 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:28 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:27 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct 8 11:28 3 -> /mnt/logs/123.txt
[user@localhost ~]$ df -h | grep mnt
/dev/loop0 8.7M 8.0M 0 100% /mnt
เจเฉฑเจฅเฉ เจเฉเจ เจกเจฟเจธเจ เจธเจชเฉเจธ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจ เจธเฉเจ เจธเจซเจฒเจคเจพเจชเฉเจฐเจตเจ เจเฉฑเจฅเฉ เจเฉฑเจ เจจเจพเจฎเจ เจชเจพเจเจช เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ:
[user@localhost ~]$ mkfifo /mnt/logs/megapipe
[user@localhost ~]$ ls -lah /mnt/logs/megapipe
prw-rw-r-- 1 user user 0 Oct 8 11:28 /mnt/logs/megapipe
เจนเฉเจฃ เจธเจพเจจเฉเฉฐ เจเจธ เจชเจพเจเจช เจตเจฟเฉฑเจ เจเจพเจฃ เจตเจพเจฒเฉ เจธเจพเจฐเฉ เจกเฉเจเจพ เจจเฉเฉฐ เจจเฉเจเจตเจฐเจ เจฐเจพเจนเฉเจ เจเจฟเจธเฉ เจนเฉเจฐ เจธเจฐเจตเจฐ เจตเจฟเฉฑเจ เจธเจฎเฉเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ; เจเจนเฉ เจจเฉเฉฑเจเจเฉเจ เจเจธเจฆเฉ เจฒเจ เจขเฉเจเจตเจพเจ เจนเฉ.
เจธเจฐเจตเจฐ remote-server.example.com 'เจคเฉ เจ เจธเฉเจ เจเจฒเจพเจเจเจฆเฉ เจนเจพเจ
[user@localhost ~]$ nc -l 7777 > 123.txt
เจธเจพเจกเฉ เจธเจฎเฉฑเจธเจฟเจ เจตเจพเจฒเฉ เจธเจฐเจตเจฐ 'เจคเฉ เจ เจธเฉเจ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจเจฐเจฎเฉเจจเจฒ เจตเจฟเฉฑเจ เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ
[user@localhost ~]$ nc remote-server.example.com 7777 < /mnt/logs/megapipe
เจนเฉเจฃ เจชเจพเจเจช เจตเจฟเฉฑเจ เจเจคเจฎ เจนเฉเจฃ เจตเจพเจฒเจพ เจธเจพเจฐเจพ เจกเฉเจเจพ เจเจชเจฃเฉ เจเจช เจจเฉเฉฑเจเจเฉเจ เจตเจฟเฉฑเจ stdin เจตเจฟเฉฑเจ เจเจฒเจพ เจเจพเจตเฉเจเจพ, เจเฉ เจเจธเจจเฉเฉฐ เจชเฉเจฐเจ 7777 เจเฉฑเจคเฉ เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ เจญเฉเจ เจฆเฉเจตเฉเจเจพเฅค
เจธเจพเจจเฉเฉฐ เจฌเฉฑเจธ เจเจธ เจจเจพเจฎเฉ เจชเจพเจเจช เจตเจฟเฉฑเจ เจเจชเจฃเจพ เจกเฉเจเจพ เจฒเจฟเจเจฃเจพ เจธเจผเฉเจฐเฉ เจเจฐเจจเจพ เจนเฉเฅค
เจธเจพเจกเฉ เจเฉเจฒ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเฉฑเจฒ เจฐเจนเฉ เจนเฉ:
[user@localhost ~]$ ps axuf | grep [o]pen
user 5946 99.8 0.0 128600 5744 pts/22 R+ 11:27 169:27 | _ python openforwrite.py
[user@localhost ~]$ ls -lah /proc/5946/fd
total 0
dr-x------ 2 user user 0 Oct 8 11:27 .
dr-xr-xr-x 9 user user 0 Oct 8 11:27 ..
lrwx------ 1 user user 64 Oct 8 11:28 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:28 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:27 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct 8 11:28 3 -> /mnt/logs/123.txt
เจธเจพเจฐเฉ เจซเจฒเฉเจเจพเจ เจตเจฟเฉฑเจเฉเจ, เจธเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ O_WRONLY เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจฟเจเจเจเจฟ เจซเจผเจพเจเจฒ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฎเฉเจเฉเจฆ เจนเฉ เจ เจคเฉ เจธเจพเจจเฉเฉฐ เจเจธเจจเฉเฉฐ เจธเจพเจซเจผ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ
[user@localhost ~]$ gdb -p 5946
...
(gdb) call open("/mnt/logs/megapipe", 00000001,0666)
$1 = 4
(gdb) shell ls -lah /proc/5946/fd
total 0
dr-x------ 2 user user 0 Oct 8 11:27 .
dr-xr-xr-x 9 user user 0 Oct 8 11:27 ..
lrwx------ 1 user user 64 Oct 8 11:28 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:28 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:27 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct 8 11:28 3 -> /mnt/logs/123.txt
l-wx------ 1 user user 64 Oct 8 14:20 4 -> /mnt/logs/megapipe
(gdb) call dup2(4,3)
$2 = 3
(gdb) shell ls -lah /proc/5946/fd
total 0
dr-x------ 2 user user 0 Oct 8 11:27 .
dr-xr-xr-x 9 user user 0 Oct 8 11:27 ..
lrwx------ 1 user user 64 Oct 8 11:28 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:28 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:27 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct 8 11:28 3 -> /mnt/logs/megapipe
l-wx------ 1 user user 64 Oct 8 14:20 4 -> /mnt/logs/megapipe
(gdb) call close(4)
$3 = 0
(gdb) shell ls -lah /proc/5946/fd
total 0
dr-x------ 2 user user 0 Oct 8 11:27 .
dr-xr-xr-x 9 user user 0 Oct 8 11:27 ..
lrwx------ 1 user user 64 Oct 8 11:28 0 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:28 1 -> /dev/pts/22
lrwx------ 1 user user 64 Oct 8 11:27 2 -> /dev/pts/22
l-wx------ 1 user user 64 Oct 8 11:28 3 -> /mnt/logs/megapipe
(gdb) quit
A debugging session is active.
Inferior 1 [process 5946] will be detached.
Quit anyway? (y or n) y
Detaching from program: /usr/bin/python2.7, process 5946
เจฐเจฟเจฎเฉเจ เจธเจฐเจตเจฐ remote-server.example.com เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจนเฉ
[user@localhost ~]$ ls -lah 123.txt
-rw-rw-r-- 1 user user 38M Oct 8 14:21 123.txt
เจกเจพเจเจพ เจ เจฐเจฟเจนเจพ เจนเฉ, เจ เจธเฉเจ เจธเจฎเฉฑเจธเจฟเจ เจธเจฐเจตเจฐ เจฆเฉ เจเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ
[user@localhost ~]$ ls -lah /mnt/logs/
total 7.9M
drwxr-xr-x 2 user user 1.0K Oct 8 11:28 .
drwxr-xr-x 4 root root 1.0K Oct 8 10:55 ..
-rw-rw-r-- 1 user user 7.9M Oct 8 14:17 123.txt
prw-rw-r-- 1 user user 0 Oct 8 14:22 megapipe
เจกเจพเจเจพ เจฌเจเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ, เจธเจฎเฉฑเจธเจฟเจ เจนเฉฑเจฒ เจนเฉ เจเจพเจเจฆเฉ เจนเฉ.
เจฎเฉเจ เจกเจฟเจเฉเจฐเฉ เจคเฉเจ เจเจชเจฃเฉ เจธเจพเจฅเฉเจเจ เจจเฉเฉฐ เจนเฉเจฒเฉ เจเจนเจฟเจฃ เจฆเจพ เจฎเฉเจเจพ เจฒเฉเจเจฆเจพ เจนเจพเจเฅค
เจฐเฉเจกเฉเจ-เจเฉ เจชเฉเจกเจเจพเจธเจ เจธเฉเจฃเฉเฅค
เจธเจพเจฐเจฟเจเจ เจจเฉเฉฐ เจเฉฐเจเจพ.
เจนเฉเจฎเจตเจฐเจ เจฆเฉ เจคเฉเจฐ 'เจคเฉ, เจฎเฉเจ เจธเฉเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเจพเจ เจเจฟ เจคเฉเจธเฉเจ เจเจธ เจฌเจพเจฐเฉ เจธเฉเจเฉ เจเจฟ เจเฉ เจคเฉเจธเฉเจ เจนเฉเจ เจฒเจฟเจเฉ เจเจฎเจพเจเจก เจเจฒเจพเจเจเจฆเฉ เจนเฉ เจคเจพเจ เจชเฉเจฐเฉเจธเฉเจธ เจซเจพเจเจฒ เจกเจฟเจธเจเฉเจฐเจฟเจชเจเจฐ เจเฉเจ เจเจเจก เจธเจฒเฉเจช เจตเจฟเฉฑเจ เจเฉ เจนเฉเจตเฉเจเจพ:
[user@localhost ~]$ cat /dev/zero 2>/dev/null| sleep 10000
เจธเจฐเฉเจค: www.habr.com