ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅
Π€ΡΠ½ΠΊΡΠΈΡ posix_spawn () ΠΈ Π΅Π΅ Β«Π±Π»ΠΈΠ·ΠΊΠ°Ρ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΈΡΠ°Β» ΡΡΠ½ΠΊΡΠΈΡ posix_spawnp () Π±ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΡΡΡΠΈΠΌΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ fork (): ΡΡΠ½ΠΊΡΠΈΡ fork () ΡΠ»ΠΎΠΆΠ½ΠΎ (ΠΈΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π±Π΅Π· ΠΎΠ±ΠΌΠ΅Π½Π° (ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ) ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ°.
β’Β ΠΠ±ΠΌΠ΅Π½ (ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π·Π°ΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ) β Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ ΡΡΠ΅Π΄Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
β’Β ΠΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° POSIX .
β’Β Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ POSIX Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΡΡΠ»ΡΠ³, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ MMU (memory management unit β Π±Π»ΠΎΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ).
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° POSIX ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π±Π΅Π· ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ MMU-ΠΏΡΠΎΡΠ΅Π΄ΡΡ.
Π€ΡΠ½ΠΊΡΠΈΡ posix_spawn() ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π½ΠΎ ΠΎΠ±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ posix_spawn () ΠΈ posix_spawnp () Π·Π°Π΄ΡΠΌΠ°Π½Ρ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΄ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Π·Π°ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΉ fork() /exec, ΠΈΡ ΡΠ΅Π»Ρ β ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ fork (), Π° Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΡΡΠ΅ΡΠ½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ fork () / exec.
Π’Π°ΠΊΠ°Ρ ΡΠΎΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ posix_spawn() ΠΈ posix_spawnp() ΠΎΠΊΠ°Π·Π°Π»Π° Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΈΡ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ΄Π΅ΡΡ Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ°Ρ fork()/exec, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΎΠ²Π½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π²ΡΠΏΠΎΠ» Π½ Π΅Π½ΠΈΠ΅ ΠΌ ΠΎΠ±ΡΠ°Π·Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΡΡ Π»ΡΠ±ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ; Π²Π΅Π΄Ρ ΠΡΠ±Π°Ρ ΠΏΠΎΠΏΡΡΠΊΠ° Π΄ΠΎΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»Π° Π±Ρ ΠΏΠ°ΡΠ° ΠΌ Π΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ ΠΌ ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ° ΠΌΠΌ ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡΡΠΎ ΠΌ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ posix_spawn () ΠΈ posix_spawnp () ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΌ Start_Process ΠΈ Start_Process_Search ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° POSIX_Process_Primitives Π² ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ada, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ, ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΌ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ (Π½ΠΎ Π½Π΅ UNIX), ΠΎΡΠ½Π°ΡΠ΅Π½Π½ΡΡ POSIX -ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ.
Π€ΡΠ½ΠΊΡΠΈΠΈ posix_spawn() ΠΈ posix_spawnp() ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡ ΡΠΈΠΏΠ°ΠΌΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ: ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°ΠΌΠΈ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ (ID) Π³ΡΡΠΏΠΏΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ID ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π³ΡΡΠΏΠΏΡ, ΠΌΠ°ΡΠΊΠΎΠΉ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², ΡΡΡΠ°ΡΠ΅Π³ΠΈΠ΅ΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ (Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠ³Π½Π°Π», ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠΉ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅, ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈ Π² ΡΡΠ½ΠΎΠ²Π½Π΅ΠΌ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ°Π²Π½ΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ).
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ°Π·Ρ ΡΡΠ½ΠΎΠ²Π½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠΊΡΡΡΡΠΌ (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ) Π»ΠΈΠ±ΠΎ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, Π±Π΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π΄ΡΡΠ², Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ (ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π³ΡΡΠΏΠΏΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ Π² ΡΡΠ½ΠΎΠ²Π½Π΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ²ΡΠ·Π°Π½ Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΠΊΠΎΠΉ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ system(). ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ system() Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ²Π½ΡΡ ΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ posix_spawn() ΠΈ posix_spawnp (), Π²ΡΠ΅ ΠΆΠ΅ ΡΡΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 50% ΠΎΡ ΠΎΠ±ΡΠ΅ΠΉ Β«ΡΡΠΌΠΌΡ ΡΠ΅Π»Π΅ΠΉΒ».
ΠΠ°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅ Π΄ ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π΄ Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ fork (), ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π° Π΄ Π°Π½Π½ΡΡ Π΄ Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π°Π΄ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΡΠ΅ΡΠ΅Π· ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° exec Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΊΡΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΎΡΠΊΡΡΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π½Π°ΡΠ°Π»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π° ΡΡΠ½ΠΎΠ²Π½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠΈΠ½ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠ° ΠΎΡΠΊΡΡΡΡΡ Π΄ Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΡ ΡΠ»Π°Π³ΠΎΠ² FD_CLOEXEC Π² ΠΌ ΠΎ ΠΌ Π΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π°Π΄ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅. ΠΡ ΡΠ±Π΅ΠΆΠ΄Π΅Π½Ρ, ΡΡΠΎ Π² ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° POSIX -ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΡΠ·ΡΠΊa Ada (Start_Process) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ.
ΠΡ ΠΌ ΠΎΠΆΠ΅ ΠΌ ΠΈ Π΄ Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡ Π΄ ΠΏΡΠΎΠ±Π»Π΅ ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ posix_spawn( ) ΠΈ posix_spawnp (), Π½ΠΎ Π½Π° ΠΌ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΌ Π΅Π½ΡΡΠΈ ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌ ΠΏΡΠΎΠ±Π»Π΅ ΠΌ. ΠΠΎ Π΄ ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΠ΅ Π΄ Ρ Π΄ Π»Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΡΠ½ΠΎΠ²Π½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎ ΠΌ ΠΎ Ρ ΡΡ Π°ΡΠ³Ρ ΠΌ Π΅Π½ΡΠΎΠ² attrp ΠΈΠ»ΠΈ file_actions, Π΄ ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π² ΡΠΎ Π΄ ΠΈΡΠ΅Π»ΡΡΠΊΠΎ ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅, Π° ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎ Π΄ ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΡΡΠ°ΡΠ½ΠΎ, ΡΠ΅ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΠΌΠΎΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ fork () /exec. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π΄Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π΄Ρ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π° ΡΡΠΈ Π·Π°ΡΡΠ°ΡΡ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠΉΡΠΈ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ Π²ΡΠ·ΠΎΠ²Ρ ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ posix_spawn () ΠΈ posix_spawnp (), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. Π ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈβ ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈ ΠΎΠ½ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π΅ΠΏΡΠΈΠ³ΠΎΠ΄Π½Ρ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π΅, ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Β«ΡΡΡΠ°Π³ΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΒ» ΡΡΠ΅Π΄ΠΎΠΉ Π²Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ posix_spawn () ΠΈ posix_spawnp () Π²ΠΎΠ·Π»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π€ΡΠ½ΠΊΡΠΈΠΈ posix_spawn() ΠΈ posix_spawnp () Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π²ΡΠ΅ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΠΎΠΉ Π²Π»Π°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½Π° Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ fork () / exec. Π ΡΠ°ΠΊΠΎΠΉ ΡΡΡΠ΅ΠΊΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ. Π€ΡΠ½ΠΊΡΠΈΡ fork () β ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΌΠΎΡΠ½Π°Ρ. ΠΡ ΠΈ Π½Π΅ Π½Π°Π΄Π΅ΡΠ»ΠΈΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π±ΡΡΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΆΠ½ΠΎ ΡΠΎ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ posix_spawn () ΠΈ posix_spawnp () ΠΎΡΠ΅Π½Ρ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ UNIX.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ posix_spawn() ΠΈ posix_spawnp() ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ.
β’Β ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ MMU (memory management unit β Π±Π»ΠΎΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΈΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ.
β’Β ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ POSIX -ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ²Ρ.
β’Β ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ.
β’Β ΠΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠΎ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ fork () (Π² ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ) Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ ΠΌΠ΅Π½ΡΡΠ΅ 50%.
β’Β Π‘ΠΈΡΡΠ΅ΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ posix_spawn () ΠΈ posix_spawnp (), Π½ΠΎ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ fork (), Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
β’Β Π‘ΠΈΡΡΠ΅ΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ fork () ΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ exec, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ posix_spawn() ΠΈ posix_spawnp () ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΠ²ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
POSIX-ΡΡΠ½ΠΊΡΠΈΡ exec ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΡΡ. ΠΡΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ΅Π°Π»ΠΈΡΠΌΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ²ΡΠ°ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ posix_spawn() ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ POSIX-Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΠΌΡ ΠΏΠΎΡΡΠΈΡΠ°Π»ΠΈ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΡΠ° Π²Π°ΠΆΠ½Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ posix_spawn ().
Π Π°Π·Π»ΠΈΡΠΈΠΉ Π² ΡΠΏΠΈΡΠΊΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ posix_spawn () ΠΈ posix_spawnp () ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Ρ; ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ posix_spawnp() Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ posix_spawn ().
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ POSIX.5 (Ada)