列表5.6.txt

来自「klinux书籍的配套光盘。可以学习学习。」· 文本 代码 · 共 43 行

TXT
43
字号
【列表5.6】等待一个fork过程的子进程的结束。
{
   forkWait - Illustrate forking to a child
   process and waiting for it to complete before
   continuing.
}
program ForkWait;
{$APPTYPE CONSOLE}

uses
   Libc,
   SysUtils;
var
 forkResult : __pid_t;
 waitResult : __pid_t;
procedure DoChildProcess;
var
 s : String;
begin
 writeln;
 writeln('Child: ProcessID = ', getpid);
write('Child: Press the [ENTER] key...');
 readln(s);
 writeln('Child: Exiting');
end;

begin
 writeln;
 writeln('Parent: ProcessID = ', getpid);
  forkResult := fork;
  case forkResult of
    -1 : writeln('Error creating child process');
     0 : DoChildProcess;
  else begin
           waitResult := waitpid(forkResult, nil, 0);
            if waitResult <> forkResult
            then writeln('Parent: Error terminating child process')
            else writeln('Parent: Exiting');
          end;
   end; { case }
   writeln;
  end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?