Системное программирование в UNIX средствами Free Pascal



         

Описание - часть 4


  halt (0);

end;

var

  pip:tp3;

  i:integer;

begin

  (* Создать три канала связи, и породить три процесса. *)

  for i:=0 to 2 do

  begin

    if not assignpipe (pip[i][0],pip[i][1]) then

      fatal ('Ошибка вызова pipe');

    case fork of

      -1:        (* ошибка *)

        fatal ('Ошибка вызова fork');

      0:         (* дочерний процесс *)

        child (pip[i]);

    end;

  end;

  parent (pip);

  halt (0);

end.

Результат данной программы может быть таким:

Сообщение от потомка 0

MSG=hello

Сообщение от потомка 1

MSG=hello

Сообщение от потомка 2

MSG=hello

d   (пользователь нажимает клавишу d, а затем клавишу Return)

Из стандартного ввода d (повторение символа d)

Из стандартного ввода (повторение символа Return)

Сообщение от потомка 0

MSG=hello

Сообщение от потомка 1

MSG=hello

Сообщение от потомка 2

MSG=hello

Сообщение от потомка 0

MSG=bye

Сообщение от потомка 1

MSG=bye

Сообщение от потомка 2

MSG=bye

Обратите внимание, что в этом примере пользователь нажимает клавишу d, а затем символ перевода строки (Enter или Return), и это отслеживается в стандартном вводе в вызове select.

Функция SelectText является модификацией Select, предназначенной для работы с текстовыми файлами:




Содержание  Назад  Вперед