Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 51

Автор C. Π‘ΠΎΡ‡ΠΊΠΎΠ²

ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ макроопрСдСлСния содСрТатся Π² Ρ„Π°ΠΉΠ»Π΅ dos.h.

БистСма программирования Π’Π‘ прСдоставляСт Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для обращСния ΠΊ BIOS (Π±Π°Π·ΠΎΠ²ΠΎΠΉ подсистСмС Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы):

Ѐункция ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС bioscom ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°Π½Π°Π»ΠΎΠΌ biosdisk ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ диском biosequip ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ bioskey ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ biosmemory ΡƒΠ·Π½Π°Ρ‚ΡŒ объСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти biosprint ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ устройством ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ biostime ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ BIOS-Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ

ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ обращСния ΠΊ BIOS содСрТатся Π² Ρ„Π°ΠΉΠ»Π΅ bios.h.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами

Ѐункция ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС abort Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ процСсс execl Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс со списком Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² execle Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс со списком Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ (контСкстом ΠΈΠΌΠ΅Π½ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ языка ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы) execlp Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH ΠΈ список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² execlpe Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² execv Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс с массивом Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² execve Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс с массивом Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ execvp Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH ΠΈ массив Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² execvpe Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ массив Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² exit Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ процСсс _exit Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ процСсс Π±Π΅Π· скидывания Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² signal ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сигналом прСрывания spawnl Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс со списком Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² spawnle Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс со списком Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ spawnlp Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH ΠΈ список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² spawnlpe Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² spawnv Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс с массивом Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² spawnve Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс с массивом Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π·Π°Π΄Π°Π½ Π½Ρ‹ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ spawnvp Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH ΠΈ массив Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² spawnvpe Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ массив Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² system Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ MS-DOS

БистСма программирования MSC прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Ѐункция ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС getpid ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ процСсса onexit Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’Π΅Ρ€ΠΌΠΈΠ½ "процСсс" относится ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, которая выполняСтся ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. ΠŸΡ€ΠΎΡ†Π΅ΡΡ состоит ΠΈΠ· ΠΊΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ состоянии процСсса, Ρ‚Π°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ число ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π“Π΄Π΅ Π±Ρ‹ Π½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ MS-DOS, запускаСтся процСсс. МоТно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ процСссом ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ управлСния процСссом. ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ управлСния процСссами ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² Ρ„Π°ΠΉΠ»Π΅ process.h (ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ signal). ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ signal содСрТится Π² Ρ„Π°ΠΉΠ»Π΅ signal.h. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ управлСния процСссом ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

1) Π£Π·Π½Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ процСсса (getpid).

2) Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ процСсс (abort, exit, _exit).

3) Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сигналами прСрывания (signal).

4) ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ процСсс (разновидности СхСс ΠΈ spawn Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, system функция).

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ abort ΠΈ _exit ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· скидывания Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², функция exit осущСствляСт Π²Ρ‹Ρ…ΠΎΠ΄ послС скидывания Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Ѐункция system Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ MS-DOS. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ СхСс ΠΈ spawn ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ процСсс, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΌ процСссом. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ функциями СхСс ΠΈ spawn Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ spawn способна Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ процСсса ΠΊ Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ. Оба, ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² памяти (Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ Ρ„Π»Π°Π³ P_OVERLAY).

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ СхСс ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ процСсс, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ управлСния Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ процСсс Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ (Ссли Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка Π²ΠΎ врСмя ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ запуска Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ процСсса).

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ описываСтся способ формирования СхСс ΠΈ spawn. Имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ задаСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΠΎΠ»Π΅. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»Π΅ опрСдСляСт: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ пСрСмСнная PATH для поиска Ρ„Π°ΠΉΠ»Π° для выполнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс.

Π’Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΏΠΎΠ»Π΅ описываСт ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ процСссу. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² списком ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° ΠΎΠ΄Π½ΠΈΠΌ, Π² Ρ‚ΠΎΠΌ порядкС, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пСрСчислил ΠΈΡ… Π² ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ СхСс ΠΈΠ»ΠΈ spawn. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² массивом ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² массив ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° массив пСрСдаСтся ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ процСссу. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° списком ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° число Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² постоянно ΠΈ извСстно Π·Π°Ρ€Π°Π½Π΅Π΅, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² массивом ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° число Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹. ПослСднСС ΠΏΠΎΠ»Π΅ опрСдСляСт: унаслСдуСт Π»ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ процСсс ΠΎΡ‚ родитСля ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ для Π½Π΅Π³ΠΎ.

Π’Π°Π±Π»ΠΈΡ†Π° 9.1.

функция ИспользованиС PATH ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Бпособ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ execl Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PATH список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² наслСдуСт ΠΎΡ‚ родитСля spawnl       execle Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PATH список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ окруТСния (послСдний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚) spawnle       execlp ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PATH список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² наслСдуСт ΠΎΡ‚ родитСля spawnlp       execlpe ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PATH список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ окруТСния (послСдний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚) spawnlpe       execv Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PATH массив Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² наслСдуСт ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ spawnv       execve Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PATH массив Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ окруТСния (послСдний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚) spawnve       execvp ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PATH массив Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² наслСдуСт ΠΎΡ‚ родитСля spawnvp       execvpe ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PATH массив Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ окруТСния (послСдний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚) spawnvpe      

Поиск ΠΈ сортировка

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для поиска ΠΈ сортировки Π² массивС:

Ѐункция ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС bsearch выполняСт Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ поиск lfind выполняСт Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ поиск для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ значСния lsearch выполняСт Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ поиск для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ значСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ добавляСтся Π² массив, Ссли Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ qsort выполняСт Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ сортировку

ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ содСрТатся Π² Ρ„Π°ΠΉΠ»Π΅ search.h Π² систСмС программирования MSC, Π² Ρ„Π°ΠΉΠ»Π΅ stdlib.h Π² систСмС программирования Π’Π‘.