αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ– αž”αžΈαž•αŸ’αž“αŸ‚αž€αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3αŸ– API αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚)

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš

ហេហេ! αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž“αžΆαŸ†αž™αž€αž€αžΆαžšαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΌαžœαžŸαŸŠαŸαžšαžΈαž“αŸƒαž’αžαŸ’αžαž”αž‘-αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αž“αŸƒαž’αž€αŸ’αžŸαžšαžŸαž·αž›αŸ’αž”αŸαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αž“αž·αžαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† - OSTEP αŸ” αžŸαž˜αŸ’αž—αžΆαžšαŸˆαž“αŸαŸ‡αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž™αŸ‰αžΆαž„αžŸαŸŠαžΈαž‡αž˜αŸ’αžšαŸ…αž’αŸ†αž–αžΈαž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαžΌαž…αž™αžΌαž“αžΈαž€ αž–αŸ„αž›αž‚αžΊαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž•αŸ’αžŸαŸαž„αŸ— αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž“αž·αž„αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αŸ†αž“αžΎαž”αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžŠαžΎαž˜αž“αŸƒαžŸαž˜αŸ’αž—αžΆαžšαŸˆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž“αŸ…αž‘αžΈαž“αŸαŸ‡. αžŸαžΌαž˜αž…αŸ†αžŽαžΆαŸ†αžαžΆαž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžœαž·αž‡αŸ’αž‡αžΆαž‡αžΈαžœαŸˆ (αžŠαŸ„αž™αžŸαŸαžšαžΈ) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαžαŸ’αž‰αž»αŸ†αžšαž€αŸ’αžŸαžΆαž”αžΆαž“αž“αžΌαžœαž’αžαŸ’αžαž“αŸαž™αž‘αžΌαž‘αŸ…αŸ”

αž€αžΆαžšαž„αžΆαžšαž˜αž“αŸ’αž‘αžΈαžšαž–αž·αžŸαŸ„αž’αž“αŸαž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸαŸ‡αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ–

αž•αŸ’αž“αŸ‚αž€αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ–

αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž†αžΆαž“αŸ‚αž›αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž“αŸ… αž‘αžΌαžšαž›αŸαž =)

αžšαŸ„αž‘αž·αŸ! αž˜αžΆαž“αž”αž“αŸ’αž‘αž”αŸ‹αž–αž·αžŸαŸ„αž’αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αžšαŸ€αž“αž“αŸαŸ‡! αž˜αžΎαž› github

API αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž™αžΌαž“αžΈαž€αŸ” αžœαžΆαž€αžΎαžαž‘αžΎαž„αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αžΈαžš សម () ΠΈ exec().

αž αŸ… fork ()

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ– αž”αžΈαž•αŸ’αž“αŸ‚αž€αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3αŸ– API αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚)

αž–αž·αž…αžΆαžšαžŽαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž αŸ… fork() αŸ” αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžšαž”αžŸαŸ‹αžœαžΆαž“αžΉαž„αž˜αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ– αž”αžΈαž•αŸ’αž“αŸ‚αž€αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3αŸ– API αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚)

αžŠαŸ†αž”αžΌαž„αž™αžΎαž„αž”αž‰αŸ’αž…αžΌαž›αž˜αž»αžαž„αžΆαžš main() αž αžΎαž™αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαž‘αŸ…αž’αŸαž€αŸ’αžšαž„αŸ‹αŸ” αž”αž“αŸ’αž‘αžΆαžαŸ‹αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαžΎαž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ PID αž¬αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„ UNIX αžŠαžΎαž˜αŸ’αž”αžΈαž™αŸ„αž„αž‘αŸ…αž›αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™αŸ” αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž“αžΉαž„αž αŸ… fork()αŸ” αž“αŸ…αž…αŸ†αžŽαž»αž…αž“αŸαŸ‡ αž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ OS αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž˜αžΆαž“ 2 αž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαžΌαž…αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’ αžŠαŸ‚αž›αž“αŸ…αž€αŸ’αž“αž»αž„αžœαŸαž“αž“αžΉαž„αž…αŸαž‰αž–αžΈαž˜αž»αžαž„αžΆαžš fork()αŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΌαž“αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžαŸ’αž˜αžΈ (αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αŸαžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαžœαžΆ) αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž‘αŸ€αžαž‘αŸ αžŠαŸ„αž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž–αžΈαž˜αž»αžαž„αžΆαžš main()αŸ” αžœαžΆαž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αž…αžΆαŸ†αž€αŸ’αž“αž»αž„αž…αž·αžαŸ’αžαžαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΌαž“αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αŸ αž‡αžΆαž–αž·αžŸαŸαžŸαžœαžΆαž˜αžΆαž“αž€αž“αŸ’αž›αŸ‚αž„αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αžœαžΆ αž‘αŸ’αžšαž“αž·αž…αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αžœαžΆαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“ αž“αž·αž„αž’αŸ’αžœαžΈαŸ—αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž’αŸ’αž“αž€αž αŸ…αž˜αž»αžαž„αžΆαžš fork() αž“αžΉαž„αžαž»αžŸαž‚αŸ’αž“αžΆαŸ” αž‡αžΆαž–αž·αžŸαŸαžŸ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αŸαž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αžαž˜αŸ’αž›αŸƒ PID αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž˜αžΆαžšαž‡αžΆαž€αžΆαžšαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰ αž αžΎαž™αž€αž»αž˜αžΆαžšαž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αžαž˜αŸ’αž›αŸƒαžŸαŸ’αž˜αžΎαž“αžΉαž„ 0αŸ” αžŠαŸ„αž™αž”αŸ’αžšαžΎαž›αŸαžαž€αžΌαžŠαžαŸ’αžšαž‘αž”αŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ†αž”αŸ‚αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž”αž„αŸ’αžαŸ†αž–αž½αž€αž‚αŸαž˜αŸ’αž“αžΆαž€αŸ‹αŸ—αž±αŸ’αž™αž’αŸ’αžœαžΎαž€αžΆαžšαž„αžΆαžšαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αžœαžΆαŸ” . αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸαŸ‡αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž™αŸ‰αžΆαž„αžαžΉαž„αžšαŸ‰αžΉαž„αž‘αŸαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ‚αž„αž…αŸ‚αž€αž‡αžΆ 2 αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš OS αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž–αž½αž€αžœαžΆ αž€αŸαžŠαžΌαž…αž‡αžΆαžšαŸ€αž”αž…αŸ†αž•αŸ‚αž“αž€αžΆαžšαž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš single-core αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αž˜αŸαž“αžΉαž„αž”αž“αŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž˜αžΆαžšαž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αŸ” αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰ αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž’αžΆαž…αžαž»αžŸαž‚αŸ’αž“αžΆαŸ”

αžšαž„αŸ‹αž…αžΆαŸ†αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ ()

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ– αž”αžΈαž•αŸ’αž“αŸ‚αž€αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3αŸ– API αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚)

αž–αž·αž…αžΆαžšαžŽαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸαŸ‡αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž˜αžΆαž“αžœαžαŸ’αžαž˜αžΆαž“αž“αŸƒαž€αžΆαžšαž αŸ…αž˜αž½αž™αŸ” αžšαž„αŸ‹αž…αžΆαŸ† () αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αŸαž“αžΉαž„αžαŸ‚αž„αžαŸ‚αžšαž„αŸ‹αž…αžΆαŸ†αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž˜αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž›αž‘αŸ’αž’αž•αž›αž’αžαŸ’αžαž”αž‘αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž™αŸ‰αžΆαž„αžαžΉαž„αžšαŸ‰αžΉαž„αž“αŸ…αž›αžΎαž’αŸαž€αŸ’αžšαž„αŸ‹

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ– αž”αžΈαž•αŸ’αž“αŸ‚αž€αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3αŸ– API αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚)

exec() αž αŸ…

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ– αž”αžΈαž•αŸ’αž“αŸ‚αž€αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3αŸ– API αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚)

αž–αž·αž…αžΆαžšαžŽαžΆαž”αž‰αŸ’αž αžΆαž”αŸ’αžšαžˆαž˜ exec(). αž€αžΆαžšαž αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž“αŸ…αž–αŸαž›αž™αžΎαž„αž…αž„αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαž»αžŸαž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αž αŸ… execvp() αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ wc αžŠαŸ‚αž›αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαžΆαž”αŸ‹αž–αžΆαž€αŸ’αž™αŸ” αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› exec() αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ? αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“ αž“αž·αž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αž‡αžΆαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αž€αžΌαžŠ αž“αž·αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‹αž·αžαž·αžœαž“αŸ’αžαž–αžΈαž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€ αž αžΎαž™αž•αŸ’αž“αŸ‚αž€αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αžœαžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΌαžŠαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆαž“αŸ‹αž–αžΈαž›αžΎαŸ” αžαŸ†αž”αž“αŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž“αŸ…αžŸαŸαžŸαžŸαž›αŸ‹ αžŠαžΌαž…αž‡αžΆαž‡αž„αŸ‹ αž“αž·αž„αž αŸŠαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡ OS αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αž™αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αžœαžΆαž”αžŽαŸ’αžαž»αŸ†αž“αŸƒαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž™αžΎαž„β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αžŠαŸ†αžŽαžΎαžšβ€‹αž€αžΆαžšβ€‹αžαŸ’αž˜αžΈβ€‹αž‘αŸ αž™αžΎαž„β€‹αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž”αŸ†αž”αŸ’αž›αŸ‚αž„β€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αžŠαŸ‚αž›β€‹αž€αŸ†αž–αž»αž„β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž‘αŸ…β€‹αž‡αžΆβ€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αžŠαŸ‚αž›β€‹αž€αŸ†αž–αž»αž„β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž•αŸ’αžŸαŸαž„β€‹αž‘αŸ€αžαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš exec() call αž“αŸ…αž€αŸ’αž“αž»αž„ descendant αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαžΎαž˜αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ”

αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž“αŸƒαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžšαžΏαž„αž’αž˜αŸ’αž˜αžαžΆαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ‚αž›αž™αžΌαž“αžΈαž€ αž αžΎαž™αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžŸαŸ‚αž›αž“αŸ„αŸ‡αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘ សម ()αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž»αž“αž–αŸαž›αž αŸ… exec(). αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΌαžŠαž”αŸ‚αž”αž“αŸαŸ‡αž“αžΉαž„αž˜αžΆαž“αž€αžΆαžšαž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž”αžšαž·αž™αžΆαž€αžΆαžŸαžŸαŸ‚αž›αž‘αŸ…αž“αžΉαž„αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž˜αž»αž“αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžœαžΆαŸ”

αžŸαŸ‚αž› - αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” αž“αžΆαž„αž”αž„αŸ’αž αžΆαž‰αž’αŸ’αž“αž€αž“αžΌαžœαž”αž“αŸ’αž‘αžΆαžαŸ‹αž’αž‰αŸ’αž‡αžΎαž‰ αž αžΎαž™αžšαž„αŸ‹αž…αžΆαŸ†αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž’αŸ’αžœαžΈαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž—αžΆαž‚αž…αŸ’αžšαžΎαž“ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαžˆαŸ’αž˜αŸ„αŸ‡αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αžŸαŸ‚αž›αž“αžΉαž„αžšαž€αžƒαžΎαž‰αž‘αžΈαžαžΆαŸ†αž„αžšαž”αžŸαŸ‹αžœαžΆ αž αŸ…αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš fork() αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž αŸ…αž”αŸ’αžšαž—αŸαž‘αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸƒ exec() αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αž˜αžΈ αž αžΎαž™αžšαž„αŸ‹αž…αžΆαŸ†αž±αŸ’αž™αžœαžΆαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎ αžšαž„αŸ‹αž…αžΆαŸ† () αž αŸ…αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΌαž“αž…αŸαž‰ αžŸαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαž›αž”αŸ‹αž˜αž€αžœαž·αž‰αž–αžΈαž€αžΆαžšαž αŸ… wait() αž αžΎαž™αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž”αŸ’αžšαž’αž”αŸ‹αž”αž‰αŸ’αž…αžΌαž›αž˜αŸ’αžαž„αž‘αŸ€αž αž αžΎαž™αžšαž„αŸ‹αž…αžΆαŸ†αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ”

αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€ fork() & exec() αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžŸαŸ‚αž›αž’αŸ’αžœαžΎαž€αž·αž…αŸ’αž…αž€αžΆαžšαžαžΆαž„αž€αŸ’αžšαŸ„αž˜ αž§αž‘αžΆαž αžšαžŽαŸαŸ–
αž―αž€αžŸαžΆαžš wc > new_file αŸ”

αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαž“αŸαŸ‡ αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ wc αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž‘αŸ…αž―αž€αžŸαžΆαžšαž˜αž½αž™αŸ” αžœαž·αž’αžΈαžŠαŸ‚αž›αžŸαŸ‚αž›αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αŸαŸ‡αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹ - αžŠαŸ„αž™αž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž˜αžΆαžšαž˜αž»αž“αž–αŸαž›αž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘ exec()αžŸαŸ‚αž›αž”αž·αž‘αž›αž‘αŸ’αž’αž•αž›αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αž αžΎαž™αž”αžΎαž€αž―αž€αžŸαžΆαžš αž―αž€αžŸαžΆαžšαžαŸ’αž˜αžΈαžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž›αž‘αŸ’αž’αž•αž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž wc αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž‘αŸ…αž―αž€αžŸαžΆαžšαž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž’αŸαž€αŸ’αžšαž„αŸ‹αŸ”

αž”αŸ†αž–αž„αŸ‹αž™αžΌαž“αžΈαž€ αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αžšαž”αŸ€αž”αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž”αŸ’αžšαžΎ pipe() call αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž‡αž½αžšαž”αŸ†αž–αž„αŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αžαžΊαžŽαŸ‚αž› αžŠαŸ‚αž›αž…αžšαž“αŸ’αžαž”αž‰αŸ’αž…αžΌαž›αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹