Скачиваний:
17
Добавлен:
08.01.2014
Размер:
1.04 Кб
Скачать
(* рТПЗТБННБ sigex -- ДЕНПОУФТЙТХЕФ ТБВПФХ sigaction *)
uses linux,stdio;

(* рТПУФБС ЖХОЛГЙС ДМС ПВТБВПФЛЙ УЙЗОБМБ SIGINT *)
procedure catchint (signo:integer);cdecl;
begin
writeln (#$a'УЙЗОБМ CATCHINT: signo=', signo);
writeln ('УЙЗОБМ CATCHINT: ЧПЪЧТБФ'#$a);
end;


var
act,oact:sigactionrec;
mask:sigset_t;

begin
(* пРТЕДЕМЕОЙЕ РТПГЕДХТЩ ПВТБВПФЮЙЛБ УЙЗОБМБ catchint *)

(* ъБДБОЙЕ ДЕКУФЧЙС РТЙ РПМХЮЕОЙЙ УЙЗОБМБ SIGINT *)
act.handler.sh := @catchint;
(* уПЪДБФШ НБУЛХ, ЧЛМАЮБАЭХА ЧУЕ УЙЗОБМЩ *)
sigfillset (@mask);
act.sa_mask:=mask.__val[0];
(* дП ЧЩЪПЧБ РТПГЕДХТЩ sigaction УЙЗОБМ SIGINT
* РТЙЧПДЙМ Л ЪБЧЕТЫЕОЙА РТПГЕУУБ (ДЕКУФЧЙЕ РП ХНПМЮБОЙА)
*)
sigaction (SIGINT, @act, @oact);
(* рТЙ РПМХЮЕОЙЙ УЙЗОБМБ SIGINT ХРТБЧМЕОЙЕ
* ВХДЕФ РЕТЕДБЧБФШУС РТПГЕДХТЕ catchint
*)
writeln ('ЧЩЪПЧ sleep ОПНЕТ 1');
sleep (1);
writeln ('ЧЩЪПЧ sleep ОПНЕТ 2');
sleep (1);
writeln ('ЧЩЪПЧ sleep ОПНЕТ 3');
sleep (1);
writeln ('ЧЩЪПЧ sleep ОПНЕТ 4');
sleep (1);
writeln ('чЩИПД');
halt(0);
end.
Соседние файлы в папке 6