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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма UNIXΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 58

Автор РобачСвский АндрСй ΠœΠΈΡ…Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‡

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, выводящий Π½Π° экран установлСнныС ограничСния для процСсса:

#include <sys/types.h>

#include <sys/resource.h>

/* ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΈ максимального

Β Β  ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² потрСблСния рСсурса resource */

void disp_limit(int resource, char *rname) {

Β struct rlimit rim;

Β getrlimit(resource, &rlm);

Β printf("%-13s ", rname);

Β /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСняСмого ограничСния */

Β if (rlm.rlim_curr == RLIM_INFINITY)

Β  printf("infinite ");

Β else

Β Β printf("%101d ", rlm.rlim_cur);

Β /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ТСсткого ограничСния */

Β if (rlm.rlim_max == RLIM_INFINITY)

Β  printf("infinite \n");

Β else

Β  printf("%10ld\n", rlm.rlim_max);

}

main() {

Β disp_limit(RLIMIT_CORE, "RLIMIT_CORE");

Β disp_limit(RLIMIT_CPU, "RLIMIT_CPU");

Β disp_limit(RLIMIT_DATA, "RLIMIT_DATA");

Β disp_limit(RLIMIT_FSIZE, "RLIMIT_FSIZE");

Β disp_limit(RLIMIT_NOFILE, "RLIMIT_NOFILE");

Β disp_limit(RLIMIT_STACK, "RLIMIT_STACK");

Β /* BSD */

#ifdef RLIMIT_NPROC

Β disp_limit(RLIMIT_NPROC, "RLIMIT_NPROC");

#endif

Β /* BSD */

#ifdef RLIMIT_RSS

Β disp_limit(RLIMIT_RSS, "RLIMIT_RSS");

#endif

Β /* BSD */

#ifdef RLIMIT_MEMLOCK

Β disp_limit(RLIMIT_MEMLOCK, "RLIMIT_MEMLOCK");

#endif

Β /* System V */

#ifdef RLIMIT_VMEM

Β disp_limit(RLIMIT_VMEM, "RLIMIT_VMEM");

#endif

}

Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Solaris 2.5 даст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

$ <b>Π°.out</b>

RLIMIT_COREΒ Β  infiniteΒ Β  infinite

RLIMIT_CPUΒ Β Β  infiniteΒ Β  infinite

RLIMIT_DATAΒ Β  2147479552 2147479552

RLIMIT_FSIZEΒ  infiniteΒ Β Β infinite

RLIMIT_NOFILE 64Β Β Β Β Β Β Β Β  1024

RLIMIT_STACKΒ  8388608Β Β Β  2147479552

RLIMIT_VMEMΒ Β  infiniteΒ Β  infinite

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π’ качСствС Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π²ΡˆΠΈΠΌΡΡ Π²Ρ‹ΡˆΠ΅ вопросам приводятся Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π΄Π²ΡƒΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² достаточной стСпСни Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ практичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ интСрфСйса UNIX. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ β€” Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… мСстах участки ΠΊΠΎΠ΄Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ свСдСна ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ. Π—Π°Π΄Π°Ρ‡Π΅ΠΉ являлось ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ взаимодСйствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΈ идСологию программирования Π² UNIX. Рассмотрим Π΄Π²Π° Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹Ρ… прилоТСния β€” Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-Π΄Π΅ΠΌΠΎΠ½ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

Π”Π΅ΠΌΠΎΠ½

Π”Π΅ΠΌΠΎΠ½Ρ‹ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Достаточно Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² систСму, доступ ΠΏΠΎ сСти, использованиС систСмы ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, β€” всС это обСспСчиваСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΄Π΅ΠΌΠΎΠ½Π°ΠΌΠΈ β€” Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ собствСнныС сСансы (ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹) ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сСансов (Π³Ρ€ΡƒΠΏΠΏ).

НСкоторыС Π΄Π΅ΠΌΠΎΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ постоянно, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ яркий ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π΄Π΅ΠΌΠΎΠ½Π° β€” процСсс init(1M), ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€Π°Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ всСх ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… процСссов Π² систСмС. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ cron(1M), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, inetd(1M) ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ доступ ΠΊ сСрвисам систСмы ΠΈΠ· сСти, ΠΈ sendmail(1M), ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹.

ΠŸΡ€ΠΈ описании взаимодСйствия процСссов с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "Π“Ρ€ΡƒΠΏΠΏΡ‹ ΠΈ сСансы", ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ особоС мСсто Π΄Π΅ΠΌΠΎΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π΄Π΅ΠΌΠΎΠ½ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ряд ΠΏΡ€Π°Π²ΠΈΠ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… ΠΈΡ… Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

1.Β Π”Π΅ΠΌΠΎΠ½ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сигналы управлСния заданиями, посылаСмыС Π΅ΠΌΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° с ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ. Начиная с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π΄Π΅ΠΌΠΎΠ½ снимаСт Π°ΡΡΠΎΡ†ΠΈΠ°Ρ†ΠΈΡŽ с ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ, Π½ΠΎ Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС запуска Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ вывСсти Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ сообщСниС Π½Π° экран.

2. НСобходимо Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ всС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ (Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ дСскрипторы), особСнно стандартныС ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. МногиС ΠΈΠ· этих Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ устройства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ· систСмы. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΌΠΎΠ½ остаСтся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ "ΠΏΠΎΠΊΠΈΠ½ΡƒΠ»" UNIX.

3. НСобходимо ΡΠ½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π°ΡΡΠΎΡ†ΠΈΠ°Ρ†ΠΈΡŽ с Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ процСссов ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π΄Π΅ΠΌΠΎΠ½Ρƒ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ сигналов, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ (

SIGINT
ΠΈΠ»ΠΈ
SIGHUP
), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… клавиш ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ· систСмы.

4. БообщСния ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ Π΄Π΅ΠΌΠΎΠ½Π° слСдуСт Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΆΡƒΡ€Π½Π°Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ syslog(3), β€” это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ способ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний ΠΎΡ‚ Π΄Π΅ΠΌΠΎΠ½Π°.

5. НСобходимо ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ. Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, допустим, находится Π½Π° ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, послСднюю нСльзя Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π‘Π°ΠΌΡ‹ΠΌ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ являСтся ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, всСгда ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ скСлСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-Π΄Π΅ΠΌΠΎΠ½Π°:

#include &lt;stdio.h&gt;

#include &lt;syslog.h&gt;

#include &lt;signal.h&gt;