home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / sampler / 01 / diverse / childa.pas < prev    next >
Pascal/Delphi Source File  |  1987-08-17  |  2KB  |  59 lines

  1. PROGRAM A;
  2.  
  3. {$I PASSDATA.TYP}
  4. {$I GETPARAM.INC}
  5. {$I HEX.INC}
  6.  
  7. VAR
  8.   P        : ^passdata; {defined in PASSDATA.TYP}
  9.   Is_child : boolean;
  10.  
  11.   PROCEDURE Passback_Status(code : integer);
  12.   BEGIN
  13.     P^.status := Code;
  14.   END;
  15.  
  16.  
  17.   PROCEDURE Check_If_Child;
  18.   (* ------------------------------------------------ *)
  19.   (*  IF this program is running as a child process,  *)
  20.   (*  then there will be two valid WORDs on the       *)
  21.   (*  command line.  Assuming we find these words,    *)
  22.   (*  we set a pointer to the address they define     *)
  23.   (*  and look for a particular "password" in that    *)
  24.   (*  area.  IF we find it, then we have successfully *)
  25.   (*  set up a shared data area with the parent.      *)
  26.   (* ------------------------------------------------ *)
  27.   VAR S, O : word;
  28.   BEGIN
  29.     Get_Parameters(S,O,Is_Child); {in GETPARAM.INC}
  30.     IF Is_Child THEN
  31.       BEGIN
  32.         P := Ptr(S,O);
  33.         IF P^.password = 'BORLANDint' THEN
  34.           Passback_Status(3)
  35.         ELSE
  36.           BEGIN
  37.             WriteLn('ERROR in address');
  38.             Is_Child := false;
  39.           END;
  40.       END;
  41.   END;
  42.  
  43.   {$I ERRORHAN.INC}
  44.  
  45. BEGIN
  46.   ExitProc := @ErrorHandler;
  47.   WriteLn;
  48.   WriteLn('     THIS is program A');
  49.   Check_If_Child;
  50.   IF Is_Child THEN
  51.     BEGIN
  52.       WriteLn('     The name passed from PARENT was "',P^.name,'"');
  53.       Write('     ENTER A STRING   : '); ReadLn(P^.name);
  54.       Write('     ENTER AN INTEGER : '); ReadLn(P^.number);
  55.       P^.status := 1;
  56.       {status 1 = normal termination}
  57.     END;
  58. END.
  59.