Скачиваний:
17
Добавлен:
08.01.2014
Размер:
1.1 Кб
Скачать
(* ъБРЙУШ Ч ЛБОБМ ДП ЧПЪОЙЛОПЧЕОЙС ВМПЛЙТПЧЛЙ ЪБРЙУЙ *)
uses linux,stdio;

var
count:integer;

(* чЩЪЩЧБЕФУС РТЙ РПМХЮЕОЙЙ УЙЗОБМБ SIGALRM *)
procedure alrm_action(signo:integer);cdecl;
begin
writeln ('ъБРЙУШ ВМПЛЙТХЕФУС РПУМЕ ЧЩЧПДБ ',count,' УЙНЧПМПЧ');
halt (0);
end;

const
c:char='x';
var
fdin,fdout,pipe_size:longint;
act:sigactionrec;
temp:sigset_t;
begin
(* ъБДБФШ ПВТБВПФЮЙЛ УЙЗОБМБ *)
act.handler.sh := @alrm_action;
sigfillset (@temp);
act.sa_mask:=temp.__val[0];
(* уПЪДБФШ ЛБОБМ *)
if not assignpipe (fdin,fdout) then
begin
perror ('пЫЙВЛБ ЧЩЪПЧБ pipe ');
halt (1);
end;
(* пРТЕДЕМЙФШ ТБЪНЕТ ЛБОБМБ *)
pipe_size := fpathconf (fdin, _PC_PIPE_BUF);
writeln('нБЛУЙНБМШОЩК ТБЪНЕТ ЛБОБМБ: ',pipe_size,' ВБКФ');
(* ъБДБФШ ПВТБВПФЮЙЛ УЙЗОБМБ *)
sigaction (SIGALRM, @act, nil);
while true do
begin
(* хУФБОПЧЙФШ ФБКНЕТ *)
alarm (20);
(* ъБРЙУШ Ч ЛБОБМ *)
fdwrite (fdout, c, 1);
(* уВТПУЙФШ ФБКНЕТ *)
alarm (0);
inc(count);
if count mod 1024 = 0 then
writeln (count, ' УЙНЧПМПЧ Ч ЛБОБМЕ');
end;
end.
Соседние файлы в папке 7