แแแแ แแชแแฃแแ แกแแกแขแแแแแแก แจแแกแแแแแ
แฐแแ แฐแแแ ! แแแแแ แแฅแแแแก แงแฃแ แแแฆแแแแก แแแแแแแฎแแแแ แฉแแแ แแแ แแ แแ แแ แกแแแแขแแ แแกแ แแแขแแ แแขแฃแ แแก - OSTEP-แแก แกแขแแขแแ-แแแ แแแแแแก แกแแ แแ. แแก แแแกแแแ แกแแแแแแ แฆแ แแแ แแแแแฎแแแแแก unix-แแก แแกแแแแกแ แแแแ แแชแแฃแแ แกแแกแขแแแแแแก แแฃแจแแแแแก, แแแ แซแแ, แแ แแชแแกแแแแแ, แกแฎแแแแแกแฎแแ แแ แแคแแแแแแแ, แแแฎแกแแแ แแแแกแแแ แแ แกแฎแแ แแกแแแแก แแแแแแแแแขแแแแแ แแฃแจแแแแแก, แ แแแแแแแช แฅแแแแแ แแแแแแแแ แแแ OS-แก. แงแแแแ แแแกแแแแก แแ แแแแแแแ แจแแแแซแแแแ แแแฎแแ แแฅ
แแ แแแแแแ แแแแแ แแขแแ แแฃแแ แกแแแฃแจแแแแแ แจแแแแซแแแแ แแฎแแแแ แแฅ:
แแ แแแแแแแ แแ แแแแแแแ แฉแแแ แแแ แแแ แแแแแขแแชแแ
แกแฎแแ แแแฌแแแแแ:
แแแฌแแแ 1: แจแแกแแแแแ แแแฌแแแ 2: แแแกแขแ แแฅแชแแ: แแ แแชแแกแ แแแฌแแแ 3: แจแแกแแแแแ แแ แแชแแกแแก API-แจแ
แแกแแแ แจแแแแซแแแแ แแแฎแแ แฉแแแ แแ แฎแ แแฅ
แแแแแแจแ! แแ แแแฅแชแแแกแแแแก แแ แแก แแแแแ แแขแแ แแ! แจแแฎแแแ
แแ แแชแแกแแก API
แแแแแ แจแแแฎแแแแ UNIX แกแแกแขแแแแจแ แแ แแชแแกแแก แจแแฅแแแแก แแแแแแแแก. แแก แฎแแแแ แแ แ แกแแกแขแแแฃแ แ แแแ แแก แกแแจแฃแแแแแแ แฉแแแแแแ () ะธ exec ().
Call fork()
แแแแแแฎแแแแ แแ แแแ แแแ, แ แแแแแแช แแฎแแแแก fork() แแแ แก. แแแกแ แจแแกแ แฃแแแแแก แจแแแแแ แแฅแแแแ แจแแแแแแ.
แฃแแแ แแแแแก แงแแแแแกแ, แจแแแแแแแ แ main() แคแฃแแฅแชแแแก แแ แแแแญแแแแ แกแขแ แแฅแแแก แแแ แแแแ. แฎแแแ แจแแแชแแแก แแ แแชแแกแแก แแแแแขแแคแแแแขแแ แก, แ แแแแแกแแช แแ แแแแแแแจแ แแฌแแแแแ PID แแ แแ แแชแแกแแก แแแแแขแแคแแแแขแแ แ. แแก แแแแแขแแคแแแแขแแ แ แแแแแแงแแแแแ UNIX-แจแ แแ แแชแแกแแ แแแแแแแแแกแแแแก. แจแแแแแแ แแ แซแแแแแ แแแแแแซแแฎแแแก fork(). แแ แแขแแแแ แแฅแแแแแ แแ แแชแแกแแก แแแแฅแแแก แแฃแกแขแ แแกแแ. OS-แแกแแแแก, แ แแแแ แช แฉแแแก, แกแแกแขแแแแแ แแฃแจแแแแก แแ แแ แแ แแแแแ แแ แแแ แแแแก 2 แแกแแ, แ แแแแแแช แแแแแก แแฎแ แแ แแแแแแ fork() แคแฃแแฅแชแแแแแ. แแฎแแแ แจแแฅแแแแแ แจแแแแ แแ แแชแแกแ (แแจแแแแแก แแ แแชแแกแแแ แแแแแ แแแแแจแ, แ แแแแแแแช แจแแฅแแแ แแแ) แแฆแแ แจแแกแ แฃแแแแแ, แแแฌแงแแแฃแแ main() แคแฃแแฅแชแแแแแ. แฃแแแ แแแแฎแกแแแแแก, แ แแ แจแแแแ แแ แแชแแกแ แแ แแ แแก แแจแแแแแ แแ แแชแแกแแก แแฃแกแขแ แแกแแ; แแแ แซแแ, แแแก แแฅแแก แกแแแฃแแแ แ แแแกแแแแ แแแก แกแแแ แชแ, แกแแแฃแแแ แ แ แแแแกแขแ แแแ, แจแแกแ แฃแแแแแแ แแแกแขแ แฃแฅแชแแแแแก แกแแแฃแแแ แ แแแฉแแแแแแแแ แแ แแกแแแแกแ. แแแ แแแแ, fork() แคแฃแแฅแชแแแก แแแแแแซแแฎแแแแแแ แแแแ แฃแแแแฃแแ แแแแจแแแแแแแ แแแแกแฎแแแแแแฃแแ แแฅแแแแ. แแแ แซแแ, แแจแแแแแ แแ แแชแแกแ แแแแฆแแแก แแแแจแแแก แแ แแชแแกแแก PID แแแแจแแแแแแแแก, แ แแแแ แช แแแแ แฃแแแแแก แกแแฎแแ, แแ แแแแจแแ แแแแฆแแแก แแแแจแแแแแแแแก 0-แแก แขแแแ. แแ แแแแ แฃแแแแแก แแแแแแแก แแแแแงแแแแแแ, แแฅแแแ แจแแแแซแแแแ แแแแแกแฎแแแแแ แแ แแชแแกแแแ แแ แแแซแฃแแแ แแแแแแฃแแ แแแแแแแ แจแแแกแ แฃแแแก แกแแแฃแแแ แ แกแแแฃแจแแ. . แแฃแแชแ, แแ แแ แแแ แแแแก แจแแกแ แฃแแแแ แแ แแ แแก แแแแชแ แแ แแแแกแแแฆแแ แฃแแ. 2 แแ แแชแแกแแ แแแงแแคแแก แจแแแแแ OS แแฌแงแแแก แแแ แแแแแขแแ แแแแก, แแกแแแ แแแแ แแฃแจแแแแแก แแแแแแแแแก. แแฃ แจแแกแ แฃแแแแฃแแแ แแ แแแแ แแแแแ แแ แแชแแกแแ แแ, แแ แ-แแ แแ แแ แแชแแกแ, แแ แจแแแแฎแแแแแจแ แแจแแแแแ, แแแแแ แซแแแแแก แแฃแจแแแแแก แแ แจแแแแแ แแแแจแแแก แแ แแชแแกแ แแแแฆแแแก แแแแขแ แแแก. แแแแแขแแแ แแแแกแแก, แกแแขแฃแแชแแ แจแแแซแแแแ แแแแกแฎแแแแแแฃแแ แแงแแก.
แแแ แแก แแแแแแแแ ()
แแแแแแฎแแแแ แจแแแแแแ แแ แแแ แแแ. แแ แแ แแแ แแแแจแ, แแแ แแก แแ แกแแแแแแก แแแแ แแแแแแแ () แแจแแแแแ แแ แแชแแกแ แงแแแแแแแแก แแแแแแแ แแแแจแแแก แแ แแชแแกแแก แแแกแ แฃแแแแแก. แแ แจแแแแฎแแแแแจแ แแแ แแแแ แแแแแฆแแแ แแแแชแ แแ แแแแกแแแฆแแ แฃแ แขแแฅแกแขแก
exec() แแแ แ
แแแแแฎแแแแ แแแแแฌแแแแ exec (). แแก แกแแกแขแแแฃแ แ แแแ แ แแแแแแแแแ แแแจแแ, แ แแชแ แแแกแฃแ แก แกแ แฃแแแแ แแแแกแฎแแแแแแฃแแ แแ แแแ แแแแก แแแจแแแแ. แแฅ แฉแแแ แแแแฃแซแแฎแแแ execvp () wc แแ แแแ แแแแก แแแกแแจแแแแแ, แ แแแแแแช แแ แแก แกแแขแงแแแแแก แแแแแแแแแ แแ แแแ แแแ. แ แ แฎแแแแ exec()-แแก แแแแแซแแฎแแแแกแแก? แแ แแแ แก แแ แแฃแแแแขแแ แแแแแแชแแแ แจแแกแ แฃแแแแแแ แคแแแแแก แกแแฎแแแ แแ แแแแแแ แแ แแแ แแแแขแ แ. แ แแก แจแแแแแแแช แแแแ แแ แกแขแแขแแแฃแ แ แแแแแชแแแแแ แแ แจแแกแ แฃแแแแแแ แคแแแแแแแ แแขแแแ แแแแ แแ แแแกแ แกแแแแแแขแ แแแแแ แแแแแแฌแแ แแแ. แแแฎแกแแแ แแแแก แแแ แฉแแแแแ แแ แแแแ, แ แแแแ แแชแแ แกแขแแแ แแ แแ แแแ, แฎแแแแฎแแ แแแแชแแ แแแฃแแแ. แ แแก แจแแแแแแแช OS แฃแแ แแแแ แแฎแแ แชแแแแแแก แแ แแแ แแแแก, แแแแแกแชแแแก แแแก แแ แแฃแแแแขแแแแก แแ แแแแแแแแแก. แแกแ แ แแ, แฉแแแ แแ แจแแแฅแแแแแ แแฎแแแ แแ แแชแแกแ, แฉแแแ แฃแแ แแแแ แแแแแแแงแแแแแ แแแแแแแ แแแจแแแแฃแแ แแ แแแ แแแ แกแฎแแ แแแจแแแแฃแ แแ แแแ แแแแ. Exec() แแแ แแก แจแแแแแแแแแจแ แจแแกแ แฃแแแแแก แจแแแแแ, แ แแแแ แช แฉแแแก, แแ แแแแแแแฃแ แ แแ แแแ แแแ แกแแแ แแแ แแ แแฃแจแแแแแ.
แแแจแแแแแก แแก แแแ แแฃแแแแ แกแ แฃแแแแ แแแ แแแแฃแ แแ Unix แญแฃแ แแแกแแแแก แแ แกแแจแฃแแแแแแก แแซแแแแก แแ แแแ แกแก แจแแแกแ แฃแแแก แแแแ แแแ แแแแแก แจแแแแแ. แฉแแแแแแ (), แแแแ แแ แแแ แแก แฌแแ exec (). แแกแแแ แแแแแก แแแแแแแแ แแฅแแแแ แแแ แกแแก แแแ แแแแก แแแ แแแแ แแแจแแแแฃแแ แแ แแแ แแแแก แกแแญแแ แแแแแแแ, แแแก แแแจแแแแแแแ.
แจแแแ - แฃแแ แแแแ แแแแฎแแแ แแแแแก แแ แแแ แแแ. แแก แแแฉแแแแแแ แแแกแแฌแแแแแก แฎแแแก แแ แแแแแแแ, แ แแแแก แแแฌแแ แ แแแกแจแ แ แแฆแแชแแก. แฃแแแขแแก แจแแแแฎแแแแแจแ, แแฃ แแฅ แแแฌแแ แ แแ แแแ แแแแก แกแแฎแแแก, แญแฃแ แแ แแแแแแก แแแก แแแแแแ แแแแแก, แแแแแแซแแฎแแแก fork() แแแแแแก แแ แจแแแแแ แแแแแแซแแฎแแแก แ แแแแ แขแแแแก exec() แแฎแแแ แแ แแชแแกแแก แจแแกแแฅแแแแแแ แแ แแแแแแแแแ แแแก แแแกแ แฃแแแแแก. แแแแแแแแแ() แแแ แ. แ แแแแกแแช แแแแจแแแก แแ แแชแแกแ แแแแแก, shell แแแแ แฃแแแแแ wait() แแแ แแแแ แแ แแแแแ แแแแแญแแแแก แแแแฎแแแแแก แแ แแแแแแแแแ แจแแแแแแ แแ แซแแแแแแก แจแแงแแแแแก.
fork() & exec() split แกแแจแฃแแแแแแก แแซแแแแก shell-แก แแแแแแแแก แจแแแแแแ แ แแ, แแแแแแแแแ:
wc แคแแแแ > new_file.
แแ แแแแแแแแจแ, wc แแ แแแ แแแแก แแแแแแแแแแ แแแแแแแกแแแแ แแแแฃแแแ แคแแแแแ. แญแฃแ แแแก แแแฆแฌแแแแก แแแ แกแแแแแแ แแแ แขแแแแ - แแแ แแแแแแแ แแแแจแแแก แแ แแชแแกแแก แจแแฅแแแแ exec (), แญแฃแ แแ แฎแฃแ แแแก แกแขแแแแแ แขแฃแ แแแแแแแแแแก แแ แฎแกแแแก แคแแแแก แแฎแแแ_แคแแแแ, แแแ แแแแ, แงแแแแ แแแแแแแแแแ แจแแแแแแแ แแแจแแแแฃแแ แแ แแแ แแแแกแแแ wc แแแ แแแแก แแแชแแแแ แแแแแแแกแแแแ แแแแแ แคแแแแแ.
Unix แแแแ แฎแแ แชแแแแแแแ แแแแแแแแฃแ แแ, แแ แแแแกแฎแแแแแแแ, แ แแ แแกแแแ แแงแแแแแแ pipe() แแแแแซแแฎแแแแก. แแ แจแแแแฎแแแแแจแ, แแ แแชแแกแแก แแแแแแแแแแ แแแแแแ แแแฃแแแแจแแ แแแแ แแแ แแแจแ แแแแแแ แ แแแแแแแก แ แแแก, แ แแแแแกแแช แแแฃแแแแจแแ แแแแ แกแฎแแ แแ แแชแแกแแก แจแแงแแแแแก แแแแแแ.
แฌแงแแ แ: www.habr.com