рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: рддреАрди рд╕реЛрдкреЗ рддреБрдХрдбреЗ. рднрд╛рдЧ 3: рдкреНрд░рдХреНрд░рд┐рдпрд╛ API (рдЕрдиреБрд╡рд╛рдж)

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордЪреА рдУрд│рдЦ

рдЕрд╣реЛ рд╣рд╛рдмреНрд░! рдореА рддреБрдордЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдЖрдгреВрди рджреЗрдК рдЗрдЪреНрдЫрд┐рддреЛ рд▓реЗрдЦрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛-рдорд╛рдЭреНрдпрд╛ рдорддреЗ рдПрдХрд╛ рдордиреЛрд░рдВрдЬрдХ рд╕рд╛рд╣рд┐рддреНрдпрд╛рдЪреЗ рднрд╛рд╖рд╛рдВрддрд░ - OSTEP. рд╣реА рд╕рд╛рдордЧреНрд░реА рдпреБрдирд┐рдХреНрд╕ рд╕рд╛рд░рдЦреНрдпрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдордЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреА рд╕рдЦреЛрд▓ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ, рдореНрд╣рдгрдЬреЗ, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп, рд╡рд┐рд╡рд┐рдз рд╢реЗрдбреНрдпреВрд▓рд░, рдореЗрдорд░реА рдЖрдгрд┐ рдЖрдзреБрдирд┐рдХ OS рдмрдирд╡рд┐рдгрд╛рд░реЗ рдЗрддрд░ рд╕рдорд╛рди рдШрдЯрдХ. рдЖрдкрдг рдпреЗрдереЗ рд╕рд░реНрд╡ рд╕рд╛рдордЧреНрд░реАрдЪреЗ рдореВрд│ рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдпреЗрдереЗ. рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рднрд╛рд╖рд╛рдВрддрд░ рдЕрд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХрдкрдгреЗ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ (рдЕрдЧрджреА рдореБрдХреНрддрдкрдгреЗ), рдкрд░рдВрддреБ рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдореА рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрде рд░рд╛рдЦрд▓рд╛ рдЖрд╣реЗ.

рдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░реАрд▓ рдкреНрд░рдпреЛрдЧрд╢рд╛рд│реЗрддреАрд▓ рдХрд╛рд░реНрдп рдпреЗрдереЗ рдЖрдврд│реВ рд╢рдХрддреЗ:

рдЗрддрд░ рднрд╛рдЧ:

рддреБрдореНрд╣реА рдорд╛рдЭреЗ рдЪреЕрдирд▓ рдпреЗрдереЗ рджреЗрдЦреАрд▓ рдкрд╛рд╣реВ рд╢рдХрддрд╛ рддрд╛рд░ =)

рдЧрдЬрд░! рдпрд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛рдирд╛рд╕рд╛рдареА рдкреНрд░рдпреЛрдЧрд╢рд╛рд│рд╛ рдЖрд╣реЗ! рджрд┐рд╕рдд github

рдкреНрд░рдХреНрд░рд┐рдпрд╛ API

рдпреБрдирд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ. рд╣реЗ рджреЛрди рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓рджреНрд╡рд╛рд░реЗ рд╣реЛрддреЗ рдХрд╛рдЯрд╛ () ╨╕ exec().

рдХреЙрд▓ рдлреЛрд░реНрдХ()

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: рддреАрди рд╕реЛрдкреЗ рддреБрдХрдбреЗ. рднрд╛рдЧ 3: рдкреНрд░рдХреНрд░рд┐рдпрд╛ API (рдЕрдиреБрд╡рд╛рдж)

рдлреЛрд░реНрдХ() рдХреЙрд▓ рдХрд░рдгрд╛рд▒реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛. рддреНрдпрд╛рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЕрд╕реЗрд▓.

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: рддреАрди рд╕реЛрдкреЗ рддреБрдХрдбреЗ. рднрд╛рдЧ 3: рдкреНрд░рдХреНрд░рд┐рдпрд╛ API (рдЕрдиреБрд╡рд╛рдж)

рд╕рд░реНрд╡ рдкреНрд░рдердо, рдЖрдкрдг main() рдлрдВрдХреНрд╢рди рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░рддреЛ рдЖрдгрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдХреНрд░реАрдирд╡рд░ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЛ. рдУрд│реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдЖрд╣реЗ рдЬреНрдпрд╛рд▓рд╛ рдореВрд│ рдореНрд╣рдгрддрд╛рдд рдкреА рдЖрдп рдбреА рдХрд┐рдВрд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ. рд╣рд╛ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ UNIX рдордзреНрдпреЗ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ. рдкреБрдвреАрд▓ рдХрдорд╛рдВрдб рдлреЛрд░реНрдХ () рдХреЙрд▓ рдХрд░реЗрд▓. рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреА рдЬрд╡рд│рдЬрд╡рд│ рдЕрдЪреВрдХ рдкреНрд░рдд рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рддреЗ. OS рд╕рд╛рдареА, рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рд╕рд┐рд╕реНрдЯрдорд╡рд░ рд╕рдорд╛рди рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ 2 рдкреНрд░рддреА рдЪрд╛рд▓реВ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдореБрд│реЗ рдлреЛрд░реНрдХ() рдлрдВрдХреНрд╢рдирдордзреВрди рдмрд╛рд╣реЗрд░ рдкрдбреЗрд▓. рдирд╡реАрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рдЪрд╛рдЗрд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рддреА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрд╛рд▓рдХ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ рд╕рдВрдмрдВрдзрд╛рдд) рдпрд╛рдкреБрдвреЗ рдореБрдЦреНрдп() рдлрдВрдХреНрд╢рдирдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрдгрд╛рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реА рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА. рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдХреА рдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реА рдкрд╛рд▓рдХ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреА рдЕрдЪреВрдХ рдкреНрд░рдд рдирд╛рд╣реА; рд╡рд┐рд╢реЗрд╖рддрдГ, рддрд┐рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдкрддреНрддреНрдпрд╛рдЪреЗ рд╕реНрдерд╛рди, рд╕реНрд╡рддрдГрдЪреЗ рд░рдЬрд┐рд╕реНрдЯрд░реНрд╕, рд╕реНрд╡рддрдГрдЪреЗ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рд╕реВрдЪрдирд╛рдВрдЪреЗ рд╕реВрдЪрдХ рдЖрдгрд┐ рдЗрддрд░ рдЧреЛрд╖реНрдЯреА рдЖрд╣реЗрдд. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдлреЛрд░реНрдХ() рдлрдВрдХреНрд╢рдирдЪреНрдпрд╛ рдХреЙрд▓рд░рд▓рд╛ рдкрд░рдд рдХреЗрд▓реЗрд▓реЗ рдореВрд▓реНрдп рд╡реЗрдЧрд│реЗ рдЕрд╕реЗрд▓. рд╡рд┐рд╢реЗрд╖рддрдГ, рдкрд╛рд▓рдХ рдкреНрд░рдХреНрд░рд┐рдпреЗрд▓рд╛ рдореБрд▓рд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреЗ рдкреАрдЖрдпрдбреА рдореВрд▓реНрдп рдкрд░рддрд╛рд╡рд╛ рдореНрд╣рдгреВрди рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓, рдЖрдгрд┐ рдореБрд▓рд╛рд▓рд╛ 0 рдЪреНрдпрд╛ рдмрд░реЛрдмрд░реАрдЪреЗ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓. рдпрд╛ рд░рд┐рдЯрд░реНрди рдХреЛрдбреНрд╕рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рддреБрдореНрд╣реА рдирдВрддрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рднрдХреНрдд рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рд╕реНрд╡рддрдГрдЪреЗ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕ рднрд╛рдЧ рдкрд╛рдбреВ рд╢рдХрддрд╛. . рддрдерд╛рдкрд┐, рдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрдареЛрд░рдкрдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА. 2 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрд▓реНрдпрд╛рдирдВрддрд░, OS рддреНрдпрд╛рдВрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХрд░рддреЗ, рддрд╕реЗрдЪ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рдорд╛рдЪреА рдпреЛрдЬрдирд╛ рджреЗрдЦреАрд▓ рдХрд░рддреЗ. рд╕рд┐рдВрдЧрд▓-рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░рд╡рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛рд╕, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдкреИрдХреА рдПрдХ, рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдкрд╛рд▓рдХ, рдХрд╛рд░реНрдп рдХрд░рдгреЗ рд╕реБрд░реВ рдареЗрд╡реЗрд▓, рдЖрдгрд┐ рдирдВрддрд░ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрд▓. рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рддрд╛рдирд╛, рдкрд░рд┐рд╕реНрдерд┐рддреА рд╡реЗрдЧрд│реА рдЕрд╕реВ рд╢рдХрддреЗ.

рдХреЙрд▓ рдкреНрд░рддреАрдХреНрд╖рд╛ ()

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: рддреАрди рд╕реЛрдкреЗ рддреБрдХрдбреЗ. рднрд╛рдЧ 3: рдкреНрд░рдХреНрд░рд┐рдпрд╛ API (рдЕрдиреБрд╡рд╛рдж)

рдЦрд╛рд▓реАрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛. рдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдд рд╣рд╛рдХреЗрдЪреНрдпрд╛ рдмрд│рд╛рд╡рд░ рдЖ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рд╛() рдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреА рдкрд╛рд▓рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗрд╣рдореАрдЪ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрд▓. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЖрдореНрд╣рд╛рд▓рд╛ рд╕реНрдХреНрд░реАрдирд╡рд░ рдХрдареЛрд░рдкрдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдордЬрдХреВрд░ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд│реЗрд▓

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: рддреАрди рд╕реЛрдкреЗ рддреБрдХрдбреЗ. рднрд╛рдЧ 3: рдкреНрд░рдХреНрд░рд┐рдпрд╛ API (рдЕрдиреБрд╡рд╛рдж)

exec() рдХреЙрд▓

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: рддреАрди рд╕реЛрдкреЗ рддреБрдХрдбреЗ. рднрд╛рдЧ 3: рдкреНрд░рдХреНрд░рд┐рдпрд╛ API (рдЕрдиреБрд╡рд╛рдж)

рдЖрд╡реНрд╣рд╛рдирд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛ exec(). рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдкреВрд░реНрдгрдкрдгреЗ рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд╛рд▓рд╡рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рд╣рд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ. рдпреЗрдереЗ рдЖрдкрдг рдХреЙрд▓ рдХрд░реВ execvp() wc рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЬреЛ рд╢рдмреНрдж рдореЛрдЬрдгреА рдХрд╛рд░реНрдпрдХреНрд░рдо рдЖрд╣реЗ. exec() рдореНрд╣рдгрддрд╛рдд рддреЗрд╡реНрд╣рд╛ рдХрд╛рдп рд╣реЛрддреЗ? рд╣рд╛ рдХреЙрд▓ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓рдЪреЗ рдирд╛рд╡ рдЖрдгрд┐ рдХрд╛рд╣реА рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рд╡рд┐рддрд░реНрдХ рдореНрд╣рдгреВрди рдкрд╛рд╕ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рддреНрдпрд╛рдирдВрддрд░ рдпрд╛ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓рдордзреАрд▓ рдХреЛрдб рдЖрдгрд┐ рд╕реНрдЯреЕрдЯрд┐рдХ рдбреЗрдЯрд╛ рд▓реЛрдб рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдХреЛрдбрд╕рд╣ рддреНрдпрд╛рдЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рд╕реЗрдЧрдореЗрдВрдЯ рдУрд╡реНрд╣рд░рд░рд╛рдИрдЯ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдЙрд░реНрд╡рд░рд┐рдд рдореЗрдорд░реА рдХреНрд╖реЗрддреНрд░реЗ, рдЬрд╕реЗ рдХреА рд╕реНрдЯреЕрдХ рдЖрдгрд┐ рд╣реАрдк, рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдЬреНрдпрд╛рдирдВрддрд░ OS рдлрдХреНрдд рдкреНрд░реЛрдЧреНрд░реЕрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ, рд╡рд┐рддрд░реНрдХрд╛рдВрдЪрд╛ рд╕рдВрдЪ рдкрд╛рд╕ рдХрд░рддреЗ. рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдирд╡реАрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдпрд╛рд░ рдХреЗрд▓реА рдирд╛рд╣реА, рдЖрдореНрд╣реА рдлрдХреНрдд рд╕рдзреНрдпрд╛ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд▓рд╛ рджреБрд╕рд░реНтАНрдпрд╛ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ. descendant рдордзреНрдпреЗ exec() рдХреЙрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рдореВрд│ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЕрдЬрд┐рдмрд╛рдд рдЪрд╛рд▓рд▓рд╛ рдирд╛рд╣реА.

рдпреБрдирд┐рдХреНрд╕ рд╢реЗрд▓рд╕рд╛рдареА рд╣реА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЧреБрдВрддрд╛рдЧреБрдВрдд рдкреВрд░реНрдгрдкрдгреЗ рд╕рд╛рдорд╛рдиреНрдп рдЖрд╣реЗ рдЖрдгрд┐ рдХреЙрд▓ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рддреНрдпрд╛ рд╢реЗрд▓рд▓рд╛ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдХрд╛рдЯрд╛ (), рдкрдг рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА exec(). рдЕрд╢рд╛ рдХреЛрдбрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгрдЬреЗ рд▓реЙрдиреНрдЪ рд╣реЛрдгреНрдпрд╛рдкреВрд░реНрд╡реА, рд▓реЙрдиреНрдЪ рд╣реЛрдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рдЧрд░рдЬреЗрдиреБрд╕рд╛рд░ рд╢реЗрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдгреЗ.

рд╢реЗрд▓ - рдлрдХреНрдд рдПрдХ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо. рддреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдордВрддреНрд░рдгрд╛рдЪреА рдУрд│ рджрд╛рдЦрд╡рддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдд рддреБрдореНрд╣реА рдХрд╛рд╣реАрддрд░реА рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рддреЗ. рдмрд░реНтАНрдпрд╛рдЪ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рдЬрд░ рддреБрдореНрд╣реА рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреЗ рдирд╛рд╡ рддреЗрдереЗ рд▓рд┐рд╣рд┐рд▓реНрдпрд╛рд╕, рд╢реЗрд▓рд▓рд╛ рддреНрдпрд╛рдЪреЗ рд╕реНрдерд╛рди рд╕рд╛рдкрдбреЗрд▓, рдлреЛрд░реНрдХ() рдкрджреНрдзрддреАрд╡рд░ рдХреЙрд▓ рдХрд░рд╛ рдЖрдгрд┐ рдирдВрддрд░ рдирд╡реАрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ exec() рд╡рд░ рдХреЙрд▓ рдХрд░рд╛ рдЖрдгрд┐ рддреЗ рд╡рд╛рдкрд░реВрди рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рд╛. рдкреНрд░рддреАрдХреНрд╖рд╛ () рдХреЙрд▓. рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдмрд╛рд╣реЗрд░ рдкрдбрд▓реНрдпрд╛рд╡рд░, рд╢реЗрд▓ рдкреНрд░рддреАрдХреНрд╖рд╛() рдХреЙрд▓рдордзреВрди рдкрд░рдд рдпреЗрдИрд▓ рдЖрдгрд┐ рдкреНрд░реЙрдореНрдкреНрдЯ рдкреБрдиреНрд╣рд╛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрд▓ рдЖрдгрд┐ рдкреБрдвреАрд▓ рдХрдорд╛рдВрдб рдПрдВрдЯрд░ рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрд▓.

fork() рдЖрдгрд┐ exec() рд╕реНрдкреНрд▓рд┐рдЯ рд╢реЗрд▓рд▓рд╛ рдЦрд╛рд▓реАрд▓ рдЧреЛрд╖реНрдЯреА рдХрд░реВ рджреЗрддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде:
wc рдлрд╛рдЗрд▓ > new_file.

рдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд, wc рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреЗ рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрд▓рд╡рд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рд╢реЗрд▓рдиреЗ рд╣реЗ рд╕рд╛рдзреНрдп рдХрд░рдгреНрдпрд╛рдЪрд╛ рдорд╛рд░реНрдЧ рдЕрдЧрджреА рд╕реЛрдкрд╛ рдЖрд╣реЗ - рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдпрд╛рд░ рдХрд░реВрди exec(), рд╢реЗрд▓ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдмрдВрдж рдХрд░рддреЛ рдЖрдгрд┐ рдлрд╛рдЗрд▓ рдЙрдШрдбрддреЛ рдирд╡реАрди_рдлрд╛рдЗрд▓, рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдкреБрдвреАрд▓ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреВрди рд╕рд░реНрд╡ рдЖрдЙрдЯрдкреБрдЯ wc рд╕реНрдХреНрд░реАрдирдРрд╡рдЬреА рдлрд╛рдЗрд▓рд╡рд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.

рдпреБрдирд┐рдХреНрд╕ рдкрд╛рдИрдк рдкрд╛рдИрдк() рдХреЙрд▓ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдлрд░рдХрд╛рд╕рд╣, рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реЗ рдЬрд╛рддрд╛рдд. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╡рд╛рд╣ рдХрд░реНрдирд▓рдордзреНрдпреЗ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкрд╛рдИрдк рд░рд╛рдВрдЧреЗрд╢реА рдЬреЛрдбрд▓рд╛ рдЬрд╛рдИрд▓, рдЬреНрдпрд╛рд▓рд╛ рджреБрд╕рд░реНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рдЗрдирдкреБрдЯ рдкреНрд░рд╡рд╛рд╣ рдЬреЛрдбрд▓рд╛ рдЬрд╛рдИрд▓.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛