ืืืื ืืืขืจืืืช ืืคืขืื
ืืื ืืืจ! ืืจืฆืื ื ืืืืื ืืืืืขืชืื ืกืืจืช ืืืืจืื-ืชืจืืื ืฉื ืกืคืจืืช ืืขื ืืื ืช ืืืช ืืืขืชื - OSTEP. ืืืืจ ืื ืื ืืืืคื ืื ืขืืืง ืืขืืืื ืฉื ืืขืจืืืช ืืคืขืื ืืืืืืช ืืื ืืงืก, ืืืืืจ ืขืืืื ืขื ืชืืืืืื, ืืชืืื ืื ืฉืื ืื, ืืืืจืื ืืจืืืืื ืืืืื ืืืจืื ืืืจืืืืื ืืขืจืืช ืืคืขืื ืืืืจื ืืช. ืืชื ืืืื ืืจืืืช ืืช ืืืงืืจ ืฉื ืื ืืืืืจืื ืืื
ื ืืชื ืืืฆืื ืขืืืืช ืืขืืื ืื ืืฉื ืื ืืื:
ืืืงืื ืืืจืื:
ืืชื ืืืื ืื ืืืืืง ืืช ืืขืจืืฅ ืฉืื ืืืชืืืช
ืืืขืงื! ืืฉ ืืขืืื ืืืจืฆืื ืืื! ืชืจืื
ืชืืืื API
ืืืื ื ืกืชืื ืขื ืืืืื ืืืฆืืจืช ืชืืืื ืืืขืจืืช UNIX. ืื ืงืืจื ืืืืฆืขืืช ืฉืชื ืฉืืืืช ืืขืจืืช ืืืื() ะธ exec ().
Call fork()
ืฉืงืื ืชืืื ืืช ืฉืืืฆืขืช ืงืจืืืช fork() . ืืชืืฆืื ืฉื ืืืฆืืขื ืชืืื ืืืืงืื.
ืงืืื ืื, ืื ืื ื ื ืื ืกืื ืืคืื ืงืฆืื main() ืืืืคืืกืื ืืช ืืืืจืืืช ืืืกื. ืืฉืืจื ืืืืื ืืช ืืืื ืืชืืืื ืฉืืืงืืจ ื ืงืจื ืื"ืฉ ืื ืืืื ืชืืืื. ืืืื ืื ืืฉืืฉ ื-UNIX ืืื ืืืชืืืืก ืืชืืืื. ืืคืงืืื ืืืื ืชืงืจื fork(). ืืฉืื ืื ื ืืฆืจ ืขืืชืง ืืืขื ืืืืืง ืฉื ืืชืืืื. ืขืืืจ ืืขืจืืช ืืืคืขืื, ื ืจืื ืฉืคืืขืืื ืืืขืจืืช 2 ืขืืชืงืื ืฉื ืืืชื ืชืืื ืืช, ืฉืืชืืจื ืชืฆื ืืคืื ืงืฆืืืช fork() . ืชืืืื ืืืื ืืืืฉ ืฉื ืืฆืจ (ืืืืก ืืชืืืื ืืื ืฉืืฆืจ ืืืชื) ืื ืืืืฆืข ืขืื, ืืื ืืืคืื ืงืฆืื main() . ืืฉ ืืืืืจ ืฉืชืืืื ืฆืืฆื ืืื ื ืืขืชืง ืืืืืง ืฉื ืชืืืื ืืื; ืืคืจื, ืืฉ ืื ืืจืื ืืชืืืืช ืืฉืื, ืืืืจืื ืืฉืื, ืืฆืืืข ืืฉืื ืืืืจืืืช ื ืืชื ืืช ืืืคืขืื ืืืืืื. ืืคืืื, ืืขืจื ืืืืืืจ ืืืชืงืฉืจ ืฉื ืืคืื ืงืฆืื fork() ืืืื ืฉืื ื. ืืคืจื, ืชืืืื ืืื ืืงืื ืืช ืขืจื ื-PID ืฉื ืชืืืื ืืืื ืืืืืจื, ืืืืื ืืงืื ืขืจื ืืฉืืื ื-0. ืืืืฆืขืืช ืงืืื ืืืืืจื ืืืื, ืชืืื ืืืืจ ืืื ืืืคืจืื ืชืืืืืื ืืืืืฅ ืื ืืื ืืื ืืขืฉืืช ืืช ืืขืืืื ืฉืื. . ืขื ืืืช, ืืืืฆืืข ืฉื ืชืืื ืืช ืื ืืื ื ืืืืืจ ืืงืคืื ืืช. ืืืืจ ืืืืงื ื-2 ืชืืืืืื, ืืขืจืืช ืืืคืขืื ืืชืืืื ืื ืืจ ืืืชื, ืืื ืื ืืชืื ื ืืช ืขืืืืชื. ืื ืืืืฆืข ืขื ืืขืื ืืืื ืืืช, ืืื ืืชืืืืืื, ืืืงืจื ืื ืืืืจื, ืืืฉืื ืืขืืื, ืืื ืชืืืื ืืฆืืฆื ืืงืื ืฉืืืื. ืืขืช ืืคืขืื ืืืืฉ, ืืืฆื ืขืฉืื ืืืืืช ืฉืื ื.
ืฉืืื ืืืชื()
ืฉืงืื ืืช ืืชืืื ืืช ืืืื. ืืชืืื ืืช ืื, ืขืงื ื ืืืืืช ืฉืืื ืึทืึฒืืึนืช() ืชืืืื ืืืืจื ืชืืื ืืืชืื ืืกืืื ืชืืืื ืืืื. ืืืงืจื ืื, ื ืงืื ืคืื ืืงืกื ืืืืืจ ืืงืคืื ืืช ืขื ืืืกื
exec() ืงืจืืื
ืงืื ืืืฉืืื ืืช ืืืชืืจ exec (). ืงืจืืืช ืืขืจืืช ืื ืฉืืืืฉืืช ืืืฉืจ ืื ื ืจืืฆืื ืืืคืขืื ืชืืื ืืช ืฉืื ื ืืืืืืื. ืืื ื ืชืงืฉืจ execvp() ืืืคืขืื ืืช ืชืืื ืืช wc ืฉืืื ืชืืื ืืช ืืกืคืืจืช ืืืืื. ืื ืงืืจื ืืฉื ืงืจื exec()? ืงืจืืื ืื ืืืขืืจืช ืืฉื ืงืืืฅ ืืืคืขืื ืืืื ืคืจืืืจืื ืืืจืืืื ืืื. ืืืืจ ืืื ื ืืขื ืื ืืงืื ืืื ืชืื ืื ืืกืืืืื ืืงืืืฅ ืืืคืขืื ืืื ืืืงืืข ืฉืื ืขื ืืงืื ืืืืืฃ. ืืืืจื ืืืืืจืื ืื ืืชืจืื, ืืืื ืืขืจืืื ืืืขืจืืื, ืืืชืืืื ืืืืฉ. ืืืืจ ืืื ืืขืจืืช ืืืคืขืื ืคืฉืื ืืคืขืืื ืืช ืืชืืื ืืช, ืืืขืืืจื ืื ืงืืืฆื ืฉื ืืจืืืื ืืื. ืื ืื ืืฆืจื ื ืชืืืื ืืืฉ, ืคืฉืื ืืคืื ื ืืช ืืชืืื ืืช ืืคืืขืืช ืืขืช ืืชืืื ืืช ืคืืขืืช ืืืจืช. ืืืืจ ืืืฆืืข ืืงืจืืื exec() ืืฆืืฆื, ื ืจืื ืืืืื ืืชืืื ืืช ืืืงืืจืืช ืื ืจืฆื ืืื.
ืกืืืื ืืคืขืื ืื ื ืืจืืื ืืืืืืื ืขืืืจ ืืขืืคืช ืืื ืืงืก, ืืืืคืฉืจ ืืืขืืคืช ืื ืืืฆืข ืงืื ืืืืจ ืงืจืืื ืืืื(), ืืื ืืคื ื ืืฉืืื exec (). ืืืืื ืืงืื ืืื ืชืืื ืืชืืืช ืกืืืืช ืืืขืืคืช ืืฆืจืื ืืชืืื ืืช ืืืืคืขืืช, ืืคื ื ืืฉืงืชื.
ืคึผึธืึธื - ืจืง ืชืืื ืืช ืืฉืชืืฉ. ืืื ืืจืื ืื ืืช ืฉืืจืช ืืืืื ื ืืืืื ืฉืชืืชืื ืื ืืฉืื. ืืจืื ืืืงืจืื, ืื ืชืืชืื ืฉื ืืช ืฉื ืืชืืื ืืช, ืืืขืืคืช ืชืืฆื ืืช ืืืงืืื, ืชืงืจื ืืืชืืื fork() ืืืืืจ ืืื ืชืงืจื ืกืื ืืืฉืื ืฉื exec() ืืื ืืืฆืืจ ืชืืืื ืืืฉ ืืืืืืช ืืกืืืื ืืืืฆืขืืช wait() call. ืืืฉืจ ืชืืืื ืืืื ืืืฆื, ืืืขืืคืช ืชืืืืจ ืืืงืจืืื wait() ืืชืืคืืก ืฉืื ืืช ืืื ืืื ืืชืืชืื ืืืื ืช ืืคืงืืื ืืืื.
ืืคืืฆืื fork() & exec() ืืืคืฉืจ ืืืขืืคืช ืืืฆืข ืืช ืืืืจืื ืืืืื, ืืืฉื:
wc file > new_file.
ืืืืืื ืื, ืืคืื ืฉื ืชืืื ืืช wc ืื ืืชื ืืงืืืฅ. ืืืจื ืื ืืืขืืคืช ืืฉืืื ืืืช ืืื ืื ืคืฉืืื - ืขื ืืื ืืฆืืจืช ืชืืืื ืืื ืืคื ื ืืืชืงืฉืจืืช exec (), ืืืขืืคืช ืกืืืจืช ืคืื ืกืื ืืจืื ืืคืืชืืช ืืช ืืงืืืฅ ืงืืืฅ ืืืฉ, ืืคืืื, ืื ืืคืื ืืืชืืื ืืช ืืคืืขืืช ืืืืฉื wc ืืืคื ื ืืงืืืฅ ืืืงืื ืืืกื.
ืฆืื ืืจ ืืื ืืงืก ืืืืฉืืื ืืฆืืจื ืืืื, ืขื ืืืืื ืฉืื ืืฉืชืืฉืื ื-pipe() call. ืืืงืจื ืื, ืืจื ืืคืื ืฉื ืืชืืืื ืืืืืจ ืืชืืจ ืฆืื ืืจ ืืืืืงื ืืงืจื ื, ืืืื ืืืืืจ ืืจื ืืงืื ืฉื ืชืืืื ืืืจ.
ืืงืืจ: www.habr.com