рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдлрд╝рд╛рдЗрд▓

рдПрдХ рдмрд╛рд░, рдПрдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭрд╕реЗ рдкреВрдЫрд╛ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рдРрд╕реА рд╕реЗрд╡рд╛ рдкрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓реА рдЧрдИ рд╣реИ?

рдмреЗрд╢рдХ, рдореИрдВрдиреЗ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ рдХрд┐ рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЬрдЧрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдореИрдВ рдЗрд╕ рдЬрдЧрд╣ рдХреЛ рд╕рд╛рдл рдХрд░ рджреВрдВрдЧрд╛ред
рдлрд┐рд░ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░рдХрд░реНрддрд╛ рдиреЗ рдкреВрдЫрд╛, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЕрдиреБрднрд╛рдЧ рдкрд░ рдХреЛрдИ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рднреА рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ рдЬреЛ рдкреВрд░реА рдЬрдЧрд╣ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрдВрдЧреЗ?

рдЗрд╕ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдУрдкрди рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, lsof рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдФрд░ рд╕рдордЭреЗрдВ рдХрд┐ рдХрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗ рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╕реНрдкреЗрд╕ рдХреЛ рд▓рд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЖрдк рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░рдХрд░реНрддрд╛ рдиреЗ рдореЗрд░реЗ рдкреНрд░рд╢реНрди рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рдореБрдЭреЗ рдЕрдВрддрд┐рдо рд╢рдмреНрдж рдореЗрдВ рдмрд╛рдзрд┐рдд рдХрд┐рдпрд╛: "рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдбрд┐рдмрдЧ рд▓реЙрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреАрдмрдЧ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ"?

"рдареАрдХ рд╣реИ," рдореИрдВрдиреЗ рдЙрддреНрддрд░ рджрд┐рдпрд╛, "рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдбрд┐рдмрдЧ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред"
рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░рдХрд░реНрддрд╛ рдиреЗ рдЖрдкрддреНрддрд┐ рдХреА: "рдирд╣реАрдВ, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдЕрднреА рднреА рд╣рдорд╛рд░реА рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрд╡рдпрдВ рд╕реЗрд╡рд╛ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ"ред

"рдареАрдХ рд╣реИ," рдореИрдВрдиреЗ рдХрд╣рд╛, "рдпрджрд┐ рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдЦреБрд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЗрд╡рд▓ рд╕рд╛рдлрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╣рдо рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ ls рдХрдорд╛рдВрдб рдореЗрдВ рди рджреЗрдЦреЗрдВред"

рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░рдХрд░реНрддрд╛ рдкреНрд░рд╕рдиреНрди рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдирд╣реАрдВ рдерд╛ред

рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдореЗрд░реЗ рдЬреНрдЮрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдбреЗрдЯрд╛ рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд▓рд┐рдЦрддреА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдХреЛрдИ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рди рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦрддреА рд╣реИ рдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИ?

рдбреЛрдВрдЧреА


рдЕрдкрдиреЗ рдХрд░рд┐рдпрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрд╕рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдХреИрд╕реЗ рдореИрдк рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╡рд╛рди рдЗрд╡рд╛рдиреЛрд╡ рдЗрд╡рд╛рдирд┐рдЪ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдбреЗрдЯрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирд╕реЗ рджреЛрд╕реНрддреА рдХреИрд╕реЗ рдХрд░реЗрдВ? рдореИрдВ рд╕реАрдзреЗ рд╕рдВрдХреЗрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ "рддреБрдЬрд╝рд┐рдХ" рдирд╛рдо рдХрд╛ рдХреБрддреНрддрд╛ рдЗрд╕реА рдЗрд╡рд╛рди рдХрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╡рд╣ рдЕрдкрдирд╛ рдирд╛рдо рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдЗрд╡рд╛рди рдХреЗ рдмрдЬрд╛рдп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрд▓рд╛? рдлрд┐рд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдУрд▓реЗрдЖ рдЗрд╡рд╛рдиреЛрд╡реНрдирд╛ рдЗрд╡рд╛рдиреЛрд╡рд╛ рдХреЗ рдкрд╛рд╕ рдЕрдм рдПрдХ рдХреБрддреНрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рд╣рдорд╛рд░рд╛ рддреБрдЬрд╝рд┐рдХ рдЕрднреА рднреА рдЕрд╕реНрддрд┐рддреНрд╡рд╣реАрди рдЗрд╡рд╛рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдЧрд╛ред рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рджреНрд╡рд╛рд░рд╛ рдорджрдж рдХреА рдЧрдИ рдереА, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (рдЖрдИрдбреА) рджреЗрддрд╛ рдерд╛, рдФрд░ рдореЗрд░рд╛ рдЯреНрдпреВрдЬрд╝рд┐рдХ рдЗрд╕ рдЖрдИрдбреА рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдерд╛, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдХреНрд░рдорд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдереАред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рддреБрдЬрд╝рд┐рдХ рдХрд╛ рдорд╛рд▓рд┐рдХ рдЖрдИрдбреА рдирдВрдмрд░ 2 рдХреЗ рд╕рд╛рде рдерд╛, рдФрд░ рдХрд┐рд╕реА рд╕рдордп рдореЗрдВ, рдЗрд╡рд╛рди рдЗрд╕ рдЖрдИрдбреА рдХреЗ рддрд╣рдд рдерд╛, рдФрд░ рдлрд┐рд░ рдУрд▓реЗрдЖ рдЙрд╕реА рдЖрдИрдбреА рдмрди рдЧрдпрд╛ред рдорд╛рдирд╡рддрд╛ рдФрд░ рдкрд╢реБрдкрд╛рд▓рди рдХреА рд╕рдорд╕реНрдпрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред

рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╡рд░рдгрдХ


рдлрд╝рд╛рдЗрд▓ рдФрд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕рдорд╕реНрдпрд╛ рд▓рдЧрднрдЧ рд╣рдорд╛рд░реЗ рдХреБрддреНрддреЗ рдФрд░ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВрдиреЗ ivan.txt рдирд╛рдо рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реА рдФрд░ рдЙрд╕рдореЗрдВ tuzik рд╢рдмреНрдж рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░ "t" рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдФрд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХрд┐рд╕реА рдиреЗ рд░рдЦрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, olya.txtред рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рд╡рд╣реА рд░рд╣реА, рдФрд░ рдореИрдВ рдЕрднреА рднреА рдЙрд╕рдореЗрдВ рдЕрдкрдирд╛ рдЗрдХреНрдХрд╛ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдУрдкрди рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдПрдХ рдЕрдиреВрдареА рдЖрдИрдбреА рдорд┐рд▓рддреА рд╣реИ рдЬреЛ рдореБрдЭреЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИ, рдпрд╣ рдЖрдИрдбреА рдПрдХ рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╣реИред рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреЛрдИ рднреА рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд╡реЗ рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗ рд╕реНрд╡рд╛рдореА рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рд╕рдордп рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реА рдЬрд╛рддреА рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ / рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдерд╛, рдФрд░ рдореИрдВ рдЙрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд▓рд┐рдирдХреНрд╕ рдкрд░, libc рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░рддреНрдпреЗрдХ рд░рдирд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдкреНрд░рдХреНрд░рд┐рдпрд╛) 3 рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 0,1,2 рдирдВрдмрд░ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдк рд▓рд┐рдВрдХ рдореИрди рд╕реНрдЯреИрдбрд┐рдпреЛ рдФрд░ рдореИрди рд╕реНрдЯрдбрдЖрдЙрдЯ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

  • рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ 0 рдХреЛ STDIN рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдбреЗрдЯрд╛ рдЗрдирдкреБрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ
  • рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ 1 рдХреЛ STDOUT рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд┐рдВрдЯ рдХрдорд╛рдВрдб
  • рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ 2 рдХреЛ рдПрд╕рдЯреАрдбреАрдЖрд░рдЖрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрдЙрдЯрдкреБрдЯ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЖрдк рдкрдврд╝рдиреЗ рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкрд╣рд▓реА рдореБрдлреНрдд рдЖрдИрдбреА рдорд┐рд▓реЗрдЧреА рдФрд░ рдпрд╣ рдирдВрдмрд░ 3 рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ 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 

рдЖрдк рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рд╕реНрдЯреНрд░реЗрд╕ -рдл рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред

рд╣рдорд╛рд░реА рдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ PID 15771 рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рддреА рд╣реИ рдФрд░ рд╣рдорд╛рд░реА рдЖрдЬреНрдЮрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИ рдФрд░ рдареАрдХ-рдареАрдХ рд╕рдордЭрддреА рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рддрдиреЗ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рд╣реИрдВ: рдмрд┐рд▓реНрд▓реА рдФрд░ рдиреАрдВрджред рдмреИрд╢ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рджреЛ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдПрдВред рдХреБрд▓ рдмреИрд╢ рдХреЛ 2 рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдПрдХ рдкрд╛рдЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдмреИрд╢ рдкрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрд╕реНрдерд╛рдпреА рдкрд╛рдЗрдк рдмрдлрд░ рдХреЗ рд▓рд┐рдП рдирдП рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрдлрд░ рдЕрднреА рддрдХ рд╣рдорд╛рд░реА рджреЛ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрд╛рдВрдзрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдЗрдк рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдФрд░ рдЕрднреА рддрдХ рдХреЛрдИ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИ:

 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 рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рдмреИрд╢ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, d22 рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓, рдкрд╛рдЗрдк рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдирдВрдмрд░ 1 рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ STDOUT рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдкрд╛рдЗрдк рдореЗрдВ рдмрджрд▓ рджреЗрддреА рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдирдВрдмрд░ 3 рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛ PID 9004 рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ STDOUT рдХреЛ рд▓рд┐рдЦреЗрдЧрд╛ред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рдЗрдк рдмрдлрд░ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧреАред

PID 9005 рдХреЗ рд╕рд╛рде рджреВрд╕рд░реА рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ, bash рдиреЗ рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ STDIN рдХреЛ 0 рдирдВрдмрд░ рдХреЗ рд╕рд╛рде dup2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрджрд▓ рджрд┐рдпрд╛ред рдЕрдм рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛ PID 9005 рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рджреВрд╕рд░рд╛ рдмреИрд╢ рд╣реЛрдЧрд╛, рдкрд╛рдЗрдк рд╕реЗ рдкрдврд╝реЗрдЧрд╛ред

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рдВрдЦреНрдпрд╛ 3 рдФрд░ 4 рд╡рд╛рд▓реЗ рд╡рд░реНрдгрдХ рднреА рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдм рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдореИрдВ рдЬрд╛рдирдмреВрдЭрдХрд░ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ 255 рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рдЖрдВрддрд░рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рднреА рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреАрдЖрдИрдбреА тАЛтАЛ9004 рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдмреИрд╢ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ / usr / bin / cat рд╣реИред

рдкреАрдЖрдИрдбреА тАЛтАЛ9005 рдХреЗ рд╕рд╛рде рджреВрд╕рд░реЗ рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдмреИрд╢ рджреВрд╕рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ / usr / рдмрд┐рди / рдиреАрдВрдж рд╣реИред

рдпрджрд┐ рд╡реЗ рдЦреБрд▓реЗ рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди 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 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рдЗрдк рдХреА рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрдЦреНрдпрд╛ рджреЛрдиреЛрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рде рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрдмрдВрдз рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдмреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:

 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: 

"рдбрдмреНрд▓реНрдпреВ" рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЬрд╛рдБрдЪ

 [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 

рдФрд░ "рдПрдХ" рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде

 [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% рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ред

рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ рдХрд╛рд░реНрдп рдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЦреЛ рдирд╣реАрдВ рд╕рдХрддреЗред рдФрд░ рдЙрд╕реА рд╕рдордп рд╣рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛ рд╕реЗрд╡рд╛ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рд╡рд┐рднрд╛рдЬрди рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП / рдШрд░ рдореЗрдВред

рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЛ "рдордХреНрдЦреА рдкрд░ рдлрдЯрдХрд╛рд░" рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред

рд╣рдо рдЕрдкрдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ 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_REREAT | O_TRUNC рдмрд┐рдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдЦреЛрд▓реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЭрдВрдбреЗ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ

#define 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 

рд╣рдореЗрдВ рдкрд╛рдЗрдк рдЙрджрд╛рд╣рд░рдг рдпрд╛рдж рд╣реИ - рдХреИрд╕реЗ рдмреИрд╢ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреБрдк 2 рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рд╕реАрдЦ рдЪреБрдХрд╛ рд╣реИред

рд╣рдо рдПрдХ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ

 (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 

рдЕрдм рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдкрд╛рдЗрдк рдореЗрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдкрд░ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣реА рдиреЗрдЯрдХреИрдЯ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред

рджреВрд░рд╕реНрде-server.example.com рд╕рд░реНрд╡рд░ рдкрд░, рдЪрд▓рд╛рдПрдБ

 [user@localhost ~]$ nc -l 7777 > 123.txt 

рд╣рдорд╛рд░реЗ рд╕рдорд╕реНрдпрд╛ рд╕рд░реНрд╡рд░ рдкрд░, рдПрдХ рдЕрд▓рдЧ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЪрд▓рд╛рдПрдВ

 [user@localhost ~]$ nc remote-server.example.com 7777 < /mnt/logs/megapipe 

рдЕрдм рдкрд╛рдЗрдк рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЕрдкрдиреЗ рдЖрдк рдиреЗрдЯрдХрдЯ рдореЗрдВ рд╕реНрдЯрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдЗрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреЛрд░реНрдЯ 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 

Source: https://habr.com/ru/post/hi471038/


All Articles