7.11 Π£ΠΠ ΠΠΠΠΠΠΠ―
1. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π½Π° Π ΠΈΡΡΠ½ΠΊΠ΅ 7.33. ΠΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΡΠΉΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ» ΠΈ ΡΡΠ°Π²Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ.
main() {
printf("hello\nβ);
if (fork() == 0) printf("world\nβ);
}
Π ΠΈΡΡΠ½ΠΎΠΊ 7.33. ΠΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ fork ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌΡ Π²ΡΠ²ΠΎΠ΄Ρ
2. Π Π°Π·Π±Π΅ΡΠΈΡΠ΅ΡΡ Π² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½Π° Π ΠΈΡΡΠ½ΠΊΠ΅ 7.34, ΠΈ ΡΡΠ°Π²Π½ΠΈΡΠ΅ Π΅Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π ΠΈΡΡΠ½ΠΊΠ΅ 7.4.
#include βΉfcntl.hβΊ
int fdrd, fdwt;
char c;
main(argc, argv)
int argc; char *argv[];
{
if (argc != 3) exit(1);
fork();
if ((fdrd = open(argv[1], O_RDONLY)) == -1) exit(1);
if (((fdwt = creat(argv[2], 0666)) == -1) && ((fdwt = open(argv[2], O_WRONLY)) == -1)) exit(1);
rdwrt();
}
rdwrt() {
for (;;) {
if (read(fdrd, &c, 1) != 1) return;
write(fdwt, &c, 1);
}
}
Π ΠΈΡΡΠ½ΠΎΠΊ 7.34. ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ-ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π½Π΅ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Ρ
3. ΠΡΠ΅ ΡΠ°Π· ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½Π° Π ΠΈΡΡΠ½ΠΊΠ΅ 7.5 ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅ΠΉ, ΠΊΠ°ΠΊ Π΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΏΠ°ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π²Π΅ΡΡΠΈ ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Π½Π°Π»?
4. ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π»ΠΈ ΠΏΠΎΡΠ΅ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΅ΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π½ΠΈΡ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ? (Π Π°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΈ.) ΠΡΡΡ Π»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
5. ΠΠΏΠΈΡΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ kill.
6. ΠΡΠΎΡΠ΅ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Π ΠΈΡΡΠ½ΠΊΠ΅ 7.35 ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΠ³Π½Π°Π»Ρ ΡΠΈΠΏΠ° βΠ³ΠΈΠ±Π΅Π»Ρ ΠΏΠΎΡΠΎΠΌΠΊΠ°β ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ?
#include βΉsignal.hβΊ
main() {
extern catcher();
signal(SIGCLD, catcher);
if (fork() == 0) exit();
/* ΠΏΠ°ΡΠ·Π° Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π° */
pause();
}
catcher() {
printf("ΠΏΡΠΎΡΠ΅ΡΡ-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠΈΠ³Π½Π°Π»\n");
signal(SIGCLD, catcher);
}
Π ΠΈΡΡΠ½ΠΎΠΊ 7.35. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΠ³Π½Π°Π»Ρ ΡΠΈΠΏΠ° βΠ³ΠΈΠ±Π΅Π»Ρ ΠΏΠΎΡΠΎΠΌΠΊΠ°β
7. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΈΠ³Π½Π°Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΡ , ΡΠ΄ΡΠΎ Π΄Π°ΠΌΠΏΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Ρ Π½Π΅Π³ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π°. Π―Π΄ΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ βcoreβ ΠΈ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π² Π½Π΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, Π΄Π°Π½Π½ΡΡ ΠΈ ΡΡΠ΅ΠΊΠ°. ΠΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ Π΄Π°ΠΌΠΏ ΠΎΠ±ΡΠ°Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠΏΠΈΡΠΈΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½Π° ΠΠ°Ρ Π²Π·Π³Π»ΡΠ΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ΄ΡΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° βcoreβ. Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ? ΠΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΡΠ΄ΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΄Π°ΠΌΠΏΠΈΡΡΡΡ ΡΠ²ΠΎΠΈ ΠΎΠ±ΡΠ°Π·Ρ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²?
8. ΠΡΠ΅ ΡΠ°Π· ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ (Π ΠΈΡΡΠ½ΠΎΠΊ 7.12), ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅ΠΉ, ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π±ΡΠ°ΡΡΠ²Π°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΈΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΎΠΌ. ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π±Ρ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π±Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½ Π² Π»ΡΠ±ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ:
β’ ΡΠ΄ΡΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ²Π½ΠΎ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠΎΠ³ΠΎ;
β’ ΡΠ΄ΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π»Ρ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ signal Π²Π½ΠΎΠ²Ρ.
9. ΠΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠ΄ΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π»ΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠΉ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΏΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΈΡ . ΠΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ΄ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ·Π½Π°ΡΡ ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°ΡΠΈ? Π’Π°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΠ»Π° Π±Ρ Π½Π°Ρ ΠΊ ΡΡΠ°ΠΊΡΠΎΠ²ΠΊΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ BSD.
*10. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΈΠ³Π½Π°Π», Π½Π°Ρ ΠΎΠ΄ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ, ΠΎΠ½ Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ longjump. Π―Π΄ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»Π°; ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΉΠ΄Π΅Ρ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»Π°, Π² Π²Π΅ΡΡΠΈΠΈ V ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ, ΡΠ»ΠΎΠ²Π½ΠΎ ΠΎΠ½ Π²Π΅ΡΠ½ΡΠ»ΡΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ (ΠΊΠ°ΠΊ Π±Ρ ΠΏΡΠ΅ΡΠ²Π°Π² ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅). Π ΡΠΈΡΡΠ΅ΠΌΠ΅ BSD ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ. ΠΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅?
11. Π ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mkdir Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ mknod, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π΄Π²Π°ΠΆΠ΄Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ link, ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΠ°Ρ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ "." ΠΈ ".." ΠΊ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Π΅ ΠΈ ΠΊ Π΅Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ. ΠΠ΅Π· ΡΡΠΈΡ ΡΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mkdir ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠΈΠ³Π½Π°Π»? Π§ΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠΈΠ³Π½Π°Π» SIGKILL, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ? ΠΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ mkdir.
12. ΠΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π² ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π° ΠΈ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Π½Π΅Π³ΠΎ (Π΅ΡΠ»ΠΈ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ), Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΡΠ΅ΠΆΠΈΠΌ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ΄ΡΠ° ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. ΠΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ?
*13. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π³ΠΎΡΠΎΠ²ΠΈΡΡΡ ΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π°. Π‘ΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ΄ΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π». (ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "break".) Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΄ΡΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ?
*14. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², ΡΠ΄ΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΡ Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Π° β ΠΏΡΠΈΠ΅ΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎ ΡΠ±ΡΠΎΡΠΎΠΌ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ Π½ΠΎΡΠΈΡΠ΅Π»Ρ (Π΄Π°ΠΌΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ) ΠΎΠ±ΡΠ°Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π΅Π· Π΄Π°ΠΌΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ²? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΈΠ³Π½Π°Π» ΠΎ Π²ΡΡ ΠΎΠ΄Π΅ (Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ Π΄Π°ΠΌΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ) ΠΈ ΡΠΈΠ³Π½Π°Π» ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΈ (Π²ΡΡ ΠΎΠ΄ Π±Π΅Π· Π΄Π°ΠΌΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ), ΡΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈΠΌΠ΅Π»ΠΎ Π±Ρ ΡΠΌΡΡΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ?
15. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ Π½ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ newpgrp(pid,ngrp); ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ pid Π² Π³ΡΡΠΏΠΏΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ngrp (ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½ΠΎΠ²ΡΡ Π³ΡΡΠΏΠΏΡ). ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΈΡ Π² ΡΠ΅Π±Π΅ Π΅Π΅ Π²ΡΠ·ΠΎΠ².
16. ΠΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΏΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ wait ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π΄ΠΎ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ ΡΡΠΎ Π½Π΅ ΠΎΡΡΠ°Π·ΠΈΠ»ΠΎΡΡ Π±Ρ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
17. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
nowait(pid);
Π³Π΄Π΅ pid β ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠ²Π»ΡΡΡΠ΅Π³ΠΎΡΡ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ ΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ·ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΠ΄ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΄ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΌΠΊΠ° ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΎΡΠΈΡΡΠΈΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠΌ ΠΌΠ΅ΡΡΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅? ΠΡΠ΅Π½ΠΈΡΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΠ°Π²Π½ΠΈΡΠ΅ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΡΠΈΠΏΠ° "Π³ΠΈΠ±Π΅Π»Ρ ΠΏΠΎΡΠΎΠΌΠΊΠ°".
18. ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½Π° Π‘ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (startup), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ main, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ exit, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° startup ΡΠ°ΠΌΠ° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ main. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π±Ρ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π±Ρ ΠΈ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ startup ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°Π» Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ exit (ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°)?
19. ΠΠ°ΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΡ wait, Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π·Π°ΠΏΡΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ exit Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°? ΠΠΌΠ΅Π΅ΡΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ-ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ exit() Π²ΠΌΠ΅ΡΡΠΎ exit(n). ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ exit Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΡΠΎ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ wait? ΠΠΎΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΎΡΠ²Π΅Ρ.
20. ΠΠ±ΡΡΡΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π ΠΈΡΡΠ½ΠΊΠ΅ 7.36 Π·Π°ΠΏΡΡΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ exec ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅Π±Ρ. ΠΠ°ΠΊ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΄ΡΠΎ ΡΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΡΠΏΠΈΠΊΠΎΠ²ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²?
main(argc,argv)
int argc;
char *argv[];
{
execl(argv[0], argv[0], 0);