(* Программа runls3 -- выполнить ls как субпроцесс *)
uses linux,stdio;

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


var
  pid:longint;
begin
  pid := fork;
  case pid of
    -1:
      fatal ('Ошибка вызова fork');
    0:
    begin
      (* Потомок вызывает exec *)
      execl('/bin/ls -l');
      fatal('Ошибка вызова exec ');
    end;
    else
    begin
      (* Родительский процесс вызывает wait для приостановки
       * работы до завершения дочернего процесса.
       *)
      wait(nil);
      writeln('Программа ls завершилась');
      halt(0);
    end;
  end;
end.
