[fpc-pascal]A couple of things:

Michael Van Canneyt michael.vancanneyt at wisa.be
Tue Oct 31 17:19:26 CET 2000


On Tue, 31 Oct 2000, md wrote:

> A concepts I cannot resolve:
> 
> Is there any way to have one process execute another totally different
> process without having
> to wait for the spawned process to terminate before continuing on?

On which system ? Linux ?

> 
> Exec( ) style functions will create a child and wait for the child to
> terminate before 
> continuing execution.  What I am looking to do is to create a completely
> different process
> and have the Exec( ) function return as soon as the new process is
> started, not when it terminates.

-> The linux unit execXXX() and fork functions do exactly this:

  ID=Fork()
  if ID=0 then
    begin
    //Child
    exec(something)
    end
  else
    begin
    // Parent continues execution.
    WaitPID(ID, at ExitStatus,WNOHANG);
    end;

Have a look at the examples in the docu of the linux unit.
    

> 
> One idea is to have the child process daemonize itself so that it spawns
> its own child.  The daemonized process
> will then return to the orignal parent, thus allowing it to continue
> execution.  
> 
> I am looking for nothing shared between the original process and the
> spawned process.  Even the child executable
> is actually a separately compiled program.

See above.

A similar system is possible on Windows.

Have a look at the TProcess implementation on the FCL (unit process) it
allows to do this and much more in a platform-independent way.

Michael.





More information about the fpc-pascal mailing list