Добавил:
Mendeleev
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
(* рТЙНЕТ ЙУРПМШЪПЧБОЙС РТПГЕДХТ sigsetjmp Й siglongjmp *)
uses linux,stdio;
var
position:sigjmp_buf;
procedure domenu;
var
choice:integer;
begin
write('Choice menu entry:'#$a' menu 1'#$a' menu 2'#$a' menu 3'#$a'?>');
scanf('%d',[@choice]);
end;
procedure goback(smth:longint);cdecl;
begin
fprintf (stderr, #$a'рТЕТЩЧБОЙЕ'#$a, []);
(* чЕТОХФШУС Ч УПИТБОЕООХА РПЪЙГЙА *)
siglongjmp (position, 1);
end;
var
act:sigactionrec;
begin
(*
.
.
. *)
(* уПИТБОЙФШ ФЕЛХЭЕЕ РПМПЦЕОЙЕ *)
if sigsetjmp(position, 1) = 0 then
begin
act.handler.sh := @goback;
sigaction (SIGINT, @act, nil);
end;
domenu;
(*
.
.
. *)
end.
uses linux,stdio;
var
position:sigjmp_buf;
procedure domenu;
var
choice:integer;
begin
write('Choice menu entry:'#$a' menu 1'#$a' menu 2'#$a' menu 3'#$a'?>');
scanf('%d',[@choice]);
end;
procedure goback(smth:longint);cdecl;
begin
fprintf (stderr, #$a'рТЕТЩЧБОЙЕ'#$a, []);
(* чЕТОХФШУС Ч УПИТБОЕООХА РПЪЙГЙА *)
siglongjmp (position, 1);
end;
var
act:sigactionrec;
begin
(*
.
.
. *)
(* уПИТБОЙФШ ФЕЛХЭЕЕ РПМПЦЕОЙЕ *)
if sigsetjmp(position, 1) = 0 then
begin
act.handler.sh := @goback;
sigaction (SIGINT, @act, nil);
end;
domenu;
(*
.
.
. *)
end.
Соседние файлы в папке 6