เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐ

เจ‡เฉฑเจ• เจตเจพเจฐ, เจ‡เฉฑเจ• เจ‡เฉฐเจŸเจฐเจตเจฟเจŠ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ, เจฎเฉˆเจจเฉ‚เฉฐ เจชเฉเฉฑเจ›เจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจœเจฟเจนเฉ€ เจธเฉ‡เจตเจพ เจฎเจฟเจฒเจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจกเจฟเจธเจ• เจตเจฟเฉฑเจš เจธเจชเฉ‡เจธ เจ–เจคเจฎ เจนเฉ‹เจฃ เจ•เจพเจฐเจจ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจนเฉ€ เจนเฉˆ เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เฉ€ เจ•เจฐเฉ‹เจ—เฉ‡?

เจฌเฉ‡เจธเจผเฉฑเจ•, เจฎเฉˆเจ‚ เจœเจตเจพเจฌ เจฆเจฟเฉฑเจคเจพ เจ•เจฟ เจฎเฉˆเจ‚ เจฆเฉ‡เจ–เจพเจ‚เจ—เจพ เจ•เจฟ เจ‡เจธ เจœเจ—เฉเจนเจพ 'เจคเฉ‡ เจ•เฉ€ เจ•เจฌเจœเจผเจพ เจนเฉˆ เจ…เจคเฉ‡, เจœเฉ‡ เจนเฉ‹ เจธเจ•เฉ‡, เจคเจพเจ‚ เจฎเฉˆเจ‚ เจ‡เจธ เจœเจ—เฉเจนเจพ เจจเฉ‚เฉฐ เจธเจพเจซเจผ เจ•เจฐเจพเจ‚เจ—เจพเฅค
เจซเจฟเจฐ เจ‡เฉฐเจŸเจฐเจตเจฟเจŠ เจ•เจฐเจคเจพ เจจเฉ‡ เจชเฉเฉฑเจ›เจฟเจ†, เจœเฉ‡เจ•เจฐ เจชเจพเจฐเจŸเฉ€เจธเจผเจจ 'เจคเฉ‡ เจ•เฉ‹เจˆ เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจซเจพเจˆเจฒเจพเจ‚ เจตเฉ€ เจจเจนเฉ€เจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจœเฉ‹ เจธเจพเจฐเฉ€ เจœเจ—เฉเจนเจพ เจฒเฉˆ เจฒเจตเฉ‡?

เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจฎเฉˆเจ‚ เจ•เจฟเจนเจพ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจนเจฎเฉ‡เจธเจผเจพเจ‚ เจ“เจชเจจ เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ lsof เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ, เจ…เจคเฉ‡ เจธเจฎเจ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ•เจฟเจนเฉœเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‡ เจธเจพเจฐเฉ€ เจ‰เจชเจฒเจฌเจง เจœเจ—เฉเจนเจพ เจจเฉ‚เฉฐ เจฒเฉˆ เจฒเจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ เจซเจฟเจฐ เจคเฉเจธเฉ€เจ‚ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‡เจน เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจœเจพเจ‚ เจจเจนเฉ€เจ‚เฅค .

เจ‡เฉฐเจŸเจฐเจตเจฟเจŠเจฐ เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจ†เจ–เจฐเฉ€ เจธเจผเจฌเจฆ 'เจคเฉ‡ เจฐเฉ‹เจ•เจฟเจ†, เจ†เจชเจฃเฉ‡ เจธเจตเจพเจฒ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฟเจ†: "เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจธเจพเจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‡เจน เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจกเฉ€เจฌเฉฑเจ— เจฒเฉŒเจ— เจนเฉˆ, เจชเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจกเฉ€เจฌเฉฑเจ— เจจเจนเฉ€เจ‚ เจฒเจฟเจ– เจธเจ•เจฆเจพ"?

"เจ เฉ€เจ• เจนเฉˆ," เจฎเฉˆเจ‚ เจœเจตเจพเจฌ เจฆเจฟเฉฑเจคเจพ, "เจ…เจธเฉ€เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจกเฉ€เจฌเฉฑเจ— เจจเฉ‚เฉฐ เจฌเฉฐเจฆ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค"
เจ‡เฉฐเจŸเจฐเจตเจฟเจŠเจฐ เจจเฉ‡ เจ‡เจคเจฐเจพเจœเจผ เจ•เฉ€เจคเจพ: "เจจเจนเฉ€เจ‚, เจ…เจธเฉ€เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ…เจœเฉ‡ เจตเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจกเฉ‡เจŸเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ•เจฒเจพเจ‡เฉฐเจŸเจธ เจ–เฉเจฆ เจธเฉ‡เจตเจพ เจจเจพเจฒ เจœเฉเฉœเฉ‡ เจนเฉ‹เจ เจนเจจ, เจœเจฟเจธ เจจเฉ‚เฉฐ เจ…เจธเฉ€เจ‚ เจฆเฉเจฌเจพเจฐเจพ เจœเฉเฉœเจจ เจฒเจˆ เจฎเจœเจฌเฉ‚เจฐ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค"

โ€œเจ เฉ€เจ• เจนเฉˆ,โ€ เจฎเฉˆเจ‚ เจ•เจฟเจนเจพ, โ€œเจœเฉ‡ เจ…เจธเฉ€เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพ เจธเจพเจกเฉ‡ เจฒเจˆ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจ“เจชเจจ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐ เจฆเฉเจ†เจฐเจพ เจธเจพเจซเจผ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจญเจพเจตเฉ‡เจ‚ เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ ls เจ•เจฎเจพเจ‚เจก เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจตเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚เฅค เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจ‰เฉฑเจคเฉ‡เฅค"

เจ‡เฉฐเจŸเจฐเจตเจฟเจŠ เจฒเฉˆเจฃ เจตเจพเจฒเจพ เจ–เฉเจธเจผ เจธเฉ€, เจชเจฐ เจฎเฉˆเจ‚ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค

เจซเจฟเจฐ เจฎเฉˆเจ‚ เจธเฉ‹เจšเจฟเจ†, เจฎเฉ‡เจฐเฉ‡ เจ—เจฟเจ†เจจ เจฆเฉ€ เจชเจฐเจ– เจ•เจฐเจจ เจตเจพเจฒเจพ เจตเจฟเจ…เจ•เจคเฉ€ เจกเฉ‚เฉฐเจ˜เจพ เจ•เจฟเจ‰เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ? เจชเจฐ เจ‰เจฆเฉ‹เจ‚ เจ•เฉ€ เจœเฉ‡ เจกเฉ‡เจŸเจพ เจธเจญ เจคเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจฃ เจนเฉˆ? เจ‰เจฆเฉ‹เจ‚ เจ•เฉ€ เจœเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ‡เฉฑเจ• เจญเจพเจ— เจ‰เฉฑเจคเฉ‡ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฆเฉ€ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉˆ? เจ‰เจฆเฉ‹เจ‚ เจ•เฉ€ เจœเฉ‡ เจ…เจธเฉ€เจ‚ เจจเจพ เจธเจฟเจฐเจซเจผ เจ‰เจธ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ—เฉเจ† เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฒเจฟเจ–เจฟเจ† เจœเจพ เจšเฉเฉฑเจ•เจพ เจนเฉˆ, เจธเจ—เฉ‹เจ‚ เจ‰เจน เจกเฉ‡เจŸเจพ เจตเฉ€ เจœเฉ‹ เจ‡เจน เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฒเจฟเจ–เจฆเฉ€ เจนเฉˆ เจœเจพเจ‚ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเฉ€ เจนเฉˆ?

เจคเฉเจœเจผเจฟเจ•

เจ†เจชเจฃเฉ‡ เจ•เจฐเฉ€เจ…เจฐ เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจœเจฟเจนเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจœเจฟเจธเจฆเฉ€ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€เฅค เจ…เจคเฉ‡ เจซเจฟเจฐ เจฎเฉˆเจ‚ เจธเฉ‹เจšเจฟเจ†, เจฎเฉˆเจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจ‰เจธเจฆเฉ‡ เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจฎเจฟเจฒเจพ เจธเจ•เจฆเจพ เจนเจพเจ‚. เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจ‡เจตเจพเจจเฉ‹เจต เจ‡เจตเจพเจจ เจ‡เจตเจพเจจเฉ‹เจตเจฟเจš เจนเฉˆ, เจ…เจคเฉ‡ เจ‰เจธ เจ•เฉ‹เจฒ เจ•เฉเจ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจนเฉˆ, เจชเจฐ เจฎเฉˆเจ‚ เจ‰เจจเฉเจนเจพเจ‚ เจจเจพเจฒ เจฆเฉ‹เจธเจคเฉ€ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚? เจฎเฉˆเจ‚ เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจฆเฉฑเจธ เจธเจ•เจฆเจพ เจนเจพเจ‚ เจ•เจฟ "เจคเฉเจœเจผเจฟเจ•" เจจเจพเจฎ เจฆเจพ เจ•เฉเฉฑเจคเจพ เจ‡เจธ เจ‡เจตเจพเจจ เจฆเจพ เจนเฉˆเฅค เจชเจฐ เจ‰เจฆเฉ‹เจ‚ เจ•เฉ€ เจœเฉ‡ เจ‰เจน เจ†เจชเจฃเจพ เจจเจพเจฎ เจฌเจฆเจฒเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจตเจพเจจ เจฆเฉ€ เจฌเจœเจพเจ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ“เจฒเฉ€เจ† เจฌเจฃ เจœเจพเจ‚เจฆเจพ เจนเฉˆ? เจซเจฟเจฐ เจ‡เจน เจชเจคเจพ เจšเฉฑเจฒเฉ‡เจ—เจพ เจ•เจฟ เจธเจพเจกเฉ€ เจ“เจฒเฉ€เจ† เจ‡เจตเจพเจจเฉ‹เจตเจจเจพ เจ‡เจตเจพเจจเฉ‹เจตเจพ เจ•เฉ‹เจฒ เจนเฉเจฃ เจ•เฉ‹เจˆ เจ•เฉเฉฑเจคเจพ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจธเจพเจกเจพ เจคเฉเจœเจผเจฟเจ• เจ…เจœเฉ‡ เจตเฉ€ เจ—เฉˆเจฐ-เจฎเฉŒเจœเฉ‚เจฆ เจ‡เจตเจพเจจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉ‹เจตเฉ‡เจ—เจพ. เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจœเจฟเจธ เจจเฉ‡ เจนเจฐเฉ‡เจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจฟเจฒเฉฑเจ–เจฃ เจชเจ›เจพเจฃเจ•เจฐเจคเจพ (เจ†เจˆเจกเฉ€) เจฆเจฟเฉฑเจคเจพ เจธเฉ€, เจจเฉ‡ เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เฉ€เจคเฉ€, เจ…เจคเฉ‡ เจฎเฉ‡เจฐเจพ เจŸเฉ‚เจœเจผเจฟเจ• เจ‡เจธ เจ†เจˆเจกเฉ€ เจจเจพเจฒ เจœเฉเฉœเจฟเจ† เจนเฉ‹เจ‡เจ† เจธเฉ€, เจœเฉ‹ เจ•เจฟ เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจธเฉ€เจฐเฉ€เจ…เจฒ เจจเฉฐเจฌเจฐ เจธเฉ€เฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจเจธ เจฆเฉ‡ เจฎเจพเจฒเจ• เจ•เฉ‹เจฒ เจ†เจˆเจกเฉ€ เจจเฉฐเจฌเจฐ 2 เจธเฉ€, เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจธเจฎเฉ‡เจ‚ เจ‡เจตเจพเจจ เจ‡เจธ เจ†เจˆเจกเฉ€ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจธเฉ€, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ“เจฒเจฟเจ† เจ‰เจธเฉ‡ เจ†เจˆเจกเฉ€ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจฌเจฃ เจ—เจฟเจ†เฅค เจฎเจจเฉเฉฑเจ–เจคเจพ เจ…เจคเฉ‡ เจชเจธเจผเฉ‚ เจชเจพเจฒเจฃ เจฆเฉ€ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจ…เจฎเจฒเฉ€ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€.

เจซเจผเจพเจˆเจฒ เจตเจฐเจฃเจจเจ•เจพเจฐ

เจซเจพเจˆเจฒ เจ…เจคเฉ‡ เจ‡เจธ เจซเจพเจˆเจฒ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเฉ€ เจธเจฎเฉฑเจธเจฟเจ† เจฒเจ—เจญเจ— เจธเจพเจกเฉ‡ เจ•เฉเฉฑเจคเฉ‡ เจ…เจคเฉ‡ เจ†เจฆเจฎเฉ€ เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ เจนเฉˆ. เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจฎเฉˆเจ‚ ivan.txt เจจเจพเจฎ เจฆเฉ€ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจ–เฉ‹เจฒเฉเจนเฉ€ เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจธเจผเจฌเจฆ tuzik เจฒเจฟเจ–เจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเจพ, เจชเจฐ เจฎเฉˆเจ‚ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซ เจชเจนเจฟเจฒเจพ เจ…เฉฑเจ–เจฐ "t" เจฒเจฟเจ–เจฃ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจฐเจฟเจนเจพ, เจ…เจคเฉ‡ เจ‡เจธ เจซเจพเจˆเจฒ เจฆเจพ เจจเจพเจฎ เจ•เจฟเจธเฉ‡ เจฆเฉเจ†เจฐเจพ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ†, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, olya.txt. เจชเจฐ เจซเจพเจˆเจฒ เจ‰เจนเฉ€ เจฐเจนเจฟเฉฐเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจ…เจœเฉ‡ เจตเฉ€ เจ‡เจธ เจตเจฟเฉฑเจš เจ†เจชเจฃเจพ เจเจ•เจพ เจฐเจฟเจ•เจพเจฐเจก เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚. เจนเจฐ เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒ เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจ–เฉ‹เจฒเฉเจนเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจ“เจชเจจ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจฟเจฒเฉฑเจ–เจฃ ID เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจตเฉฑเจฒ เจ‡เจธเจผเจพเจฐเจพ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจ‡เจน ID เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ‡เจธ เจจเจพเจฒ เจ•เฉ‹เจˆ เจซเจฐเจ• เจจเจนเฉ€เจ‚ เจชเฉˆเจ‚เจฆเจพ เจ•เจฟ เจ…เฉฑเจ—เฉ‡ เจ‡เจธ เจซเจพเจˆเจฒ เจจเจพเจฒ เจ•เฉ€ เจ…เจคเฉ‡ เจ•เฉŒเจฃ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจธเจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ‡เจธเจฆเจพ เจจเจพเจฎ เจฌเจฆเจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจฎเจพเจฒเจ• เจฌเจฆเจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจœเจพเจ‚ เจชเฉœเฉเจนเจจ เจ…เจคเฉ‡ เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจ…เจงเจฟเจ•เจพเจฐ เจ–เฉ‹เจนเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ, เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจ…เจœเฉ‡ เจตเฉ€ เจชเจนเฉเฉฐเจš เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจ‡เจธ เจฒเจˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจซเจพเจˆเจฒ เจ–เฉ‹เจฒเฉเจนเจฃ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจ‡เจธเจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจ เจ…เจคเฉ‡/เจœเจพเจ‚ เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจ…เจงเจฟเจ•เจพเจฐ เจธเจจ เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจ‡เจธ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจฐเจฟเจนเจพ, เจœเจฟเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจœเจฟเจนเจพ เจ•เจฐเจจเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš, libc เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจนเจฐเฉ‡เจ• เจšเฉฑเจฒ เจฐเจนเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ (เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†) เจฒเจˆ 3 เจจเฉฐเจฌเจฐ เจตเจพเจฒเฉ€เจ†เจ‚ 0,1,2 เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐ เจซเจพเจˆเจฒเจพเจ‚ เจ–เฉ‹เจฒเฉเจนเจฆเฉ€ เจนเฉˆเฅค เจตเจงเฉ‡เจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฒเจฟเฉฐเจ•เจพเจ‚ 'เจคเฉ‡ เจชเจพเจˆ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ เจ†เจฆเจฎเฉ€ stdio ะธ เจ†เจฆเจฎเฉ€ stdout

  • เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐ 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 เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐ เจซเจพเจˆเจฒเจพเจ‚ เจธเฉ‚เจกเฉ‹ เจŸเจฐเจฎเฉ€เจจเจฒ เจกเจฟเจตเจพเจˆเจธ เจจเจพเจฒ เจœเฉเฉœเฉ€เจ†เจ‚ เจนเฉ‹เจˆเจ†เจ‚ เจนเจจ /dev/pts, เจชเจฐ เจ…เจธเฉ€เจ‚ เจ…เจœเฉ‡ เจตเฉ€ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‚เจœเฉ‡ เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš เจšเจฒเจพเจ“

[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

เจซเจฟเจฐ เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เจฒเฉ‹เจจ 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
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 เจจเจพเจฒ เจชเจนเจฟเจฒเฉ€ เจšเจพเจˆเจฒเจก เจฌเฉˆเจธเจผ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš, เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒ dup2, เจธเจพเจกเฉ‡ STDOUT เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐ เจจเฉฐเจฌเจฐ 1 เจจเฉ‚เฉฐ เจชเจพเจˆเจช เจตเฉฑเจฒ เจ‡เจธเจผเจพเจฐเจพ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเจพ เจนเฉˆ, เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจ‡เจน เจจเฉฐเจฌเจฐ 3 เจนเฉˆเฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, PID 9004 เจจเจพเจฒ เจชเจนเจฟเจฒเฉ€ เจšเจพเจˆเจฒเจก เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† STDOUT เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฆเฉ€ เจนเฉˆ, เจ‰เจน เจธเจญ เจ•เฉเจ เจ†เจชเจฃเฉ‡ เจ†เจช เจชเจพเจˆเจช เจฌเจซเจฐ เจตเจฟเฉฑเจš เจ–เจคเจฎ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค

PID 9005 เจฆเฉ‡ เจจเจพเจฒ เจฆเฉ‚เจœเฉ€ เจšเจพเจˆเจฒเจก เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš, bash เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐ STDIN เจจเฉฐเจฌเจฐ 2 เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฒเจˆ dup0 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจนเฉเจฃ PID 9005 เจฆเฉ‡ เจจเจพเจฒ เจธเจพเจกเฉ€ เจฆเฉ‚เจœเฉ€ เจฌเฉˆเจธเจผ เจœเฉ‹ เจตเฉ€ เจชเฉœเฉเจนเฉ‡เจ—เฉ€ เจ‰เจน เจชเจพเจˆเจช เจคเฉ‹เจ‚ เจชเฉœเฉเจนเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, 3 เจ…เจคเฉ‡ 4 เจจเฉฐเจฌเจฐ เจตเจพเจฒเฉ‡ เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ€ เจšเจพเจˆเจฒเจก เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจตเจฟเฉฑเจš เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจนเฉเจฃ เจตเจฐเจคเฉ‡ เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค

เจฎเฉˆเจ‚ เจœเจพเจฃเจฌเฉเฉฑเจ เจ•เฉ‡ เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐ 255 เจจเฉ‚เฉฐ เจจเจœเจผเจฐเจ…เฉฐเจฆเจพเจœเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚; เจ‡เจน เจฌเฉˆเจธเจผ เจฆเฉเจ†เจฐเจพ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจ‰เจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฌเจพเจฒ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉ€ เจฌเฉฐเจฆ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจ…เฉฑเจ—เฉ‡, PID 9004 เจจเจพเจฒ เจชเจนเจฟเจฒเฉ€ เจšเจพเจˆเจฒเจก เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš, bash เจ‡เฉฑเจ• เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ exec เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ 'เจคเฉ‡ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ€ เจนเฉˆ, เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจ‡เจน /usr/bin/cat เจนเฉˆเฅค

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

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจตเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจซเจพเจˆเจฒ เจฆเจพ เจ†เจ•เจพเจฐ เจธเจฟเจฐเจซ เจตเจง เจฐเจฟเจนเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเจพเจกเฉ‡ เจคเจฃเฉ‡ เจจเฉ‡ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ. เจ†เจ‰ เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ เจ“เจชเจจ. เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจ–เฉ‹เจฒเฉเจนเจฃ เจตเฉ‡เจฒเฉ‡ O_APPEND เจซเจฒเฉˆเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจนเจฐเฉ‡เจ• เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจจเจพเจฒ, เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจซเจพเจˆเจฒ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจซเจพเจˆเจฒ เจฆเฉ‡ เจฌเจฟเจฒเจ•เฉเจฒ เจธเจฟเจฐเฉ‡ เจคเฉฑเจ• เจกเฉ‡เจŸเจพ เจฒเจฟเจ–เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจน เจชเฉเจฐเจฎเจพเจฃเฉ‚ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ•เจˆ เจฅเฉเจฐเฉˆเฉฑเจกเจพเจ‚ เจœเจพเจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ•เฉ‹ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจชเจฐ เจธเจพเจกเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ‡เจธ เจซเจฒเฉˆเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ…เจธเฉ€เจ‚ เจŸเจฐเฉฐเจ• เจฆเฉ‡ เจฌเจพเจ…เจฆ lsof เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจซเจพเจˆเจฒ เจ†เจ•เจพเจฐ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจตเจพเจงเฉ‚ เจฒเจฟเจ–เจค เจฒเจˆ เจซเจพเจˆเจฒ เจ–เฉ‹เจฒเฉเจนเจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธเจฆเจพ เจ…เจฐเจฅ เจนเฉˆ เจธเจพเจกเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš

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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹