208
}
kill(getppid(), SIGTERM); /* қабылдауды аяқтаймыз */
_exit(0); /* жіберуді аяқтаймыз */
break;
default:
signal(SIGINT, &hdlrInt);
while (1)
{
pause(); /* Ждем SIGINT */
kill(pid, SIGALRM); /* hdlrInt-тен қайту */
/* және жауап жібереміз */
}
_exit(0);
break;
}
return 0;
}
Келтірілген үлгі әдейі қарапайымдандырылған. Келесіге назар
аударған жөн, қабылдаушы да жіберуші де тек SIGALRM және SIGINT
сигналдарымен ғана емес, кез келген сигналмен үзіліс жағдайынан
(pause() функциясы кезінде) шығып кетуі мүмкін. Дұрыс жұмыс
жасауы үшін қалған сигналдар сигналды перденің көмегімен не
SIG_IGN тұрақты шамалардың көмегімен еленбеуі қажет.
Достарыңызбен бөлісу: