Скачиваний:
18
Добавлен:
08.01.2014
Размер:
1.1 Кб
Скачать
(* рТПЗТБННБ status2 -- РПМХЮЕОЙЕ УФБФХУБ ЪБЧЕТЫЕОЙС
* ДПЮЕТОЕЗП РТПГЕУУБ РТЙ РПНПЭЙ ЧЩЪПЧБ waitpid
*)
uses linux,stdio,crt;

procedure fatal(s:pchar);
begin
perror(s);
halt(1);
end;

var
pid:longint;
status, exit_status:integer;
begin
pid := fork;
if pid < 0 then
fatal ('пЫЙВЛБ ЧЩЪПЧБ fork ');

if pid = 0 then (* РПФПНПЛ *)
begin
(* чЩЪПЧ ВЙВМЙПФЕЮОПК РТПГЕДХТЩ sleep
* ДМС РТЙПУФБОПЧЛЙ ЧЩРПМОЕОЙС ОБ 4 УЕЛХОДЩ
*)
writeln ('рПФПНПЛ ',getpid,' РБХЪБ...');
sleep(4);
halt(5); (* ЧЩИПД У ОЕОХМЕЧЩН ЪОБЮЕОЙЕН *)
end;

(* еУМЙ НЩ ПЛБЪБМЙУШ ЪДЕУШ, ФП ЬФП ТПДЙФЕМШУЛЙК РТПГЕУУ *)
(* рТПЧЕТЙФШ, ЪБЛПОЮЙМУС МЙ ДПЮЕТОЙК РТПГЕУУ, Й ЕУМЙ ОЕФ, *)
(* ФП УДЕМБФШ УЕЛХОДОХА РБХЪХ, Й РПФПН РТПЧЕТЙФШ УОПЧБ *)
while (waitpid (pid, @status, WNOHANG) = 0) do
begin
writeln ('пЦЙДБОЙЕ РТПДПМЦБЕФУС...\n');
sleep(1);
end;

(* рТПЧЕТЛБ УФБФХУБ ЪБЧЕТЫЕОЙС ДПЮЕТОЕЗП РТПГЕУУБ *)
if WIFEXITED (status) then
begin
exit_status := WEXITSTATUS (status);
writeln ('уФБФХУ ЪБЧЕТЫЕОЙС ',pid,' ТБЧЕО ', exit_status);
end;

halt(0);
end.
Соседние файлы в папке 5