perl, forking and broken file handles

billt-lxSQFCZeNF4 at public.gmane.org billt-lxSQFCZeNF4 at public.gmane.org
Wed May 4 19:08:24 UTC 2005


That is what I meant. But point taken.

Bill
> > What you want to do is pass as parameters (global variables) the names of the files you want to open to the child process and open up the DB and files after the fork.
> 
> Why on earth would you want to do that?  Just have the filename set in
> a variable in the program, and delay opening it until the child is
> forked.  The child will have exactly the same variable definitions:
> 
> for (items)
> {
>    set current_item;
>    pid = fork();
>    if (pid == 0)
>    {
>       fh = open(current_item);
>       do stuff;
>       exit;
>    }
>    fh = open(current_item);
>    Do that other stuff (be sure not to walk on the child);
> }
> 
> About the only time you'd want to keep filehandles open between parent
> and child is, afaik, if you're using pipes for IPC; in that case the
> parent would open two pipes, and write to pipe 1 and read from pipe 2
> while the child reads from pipe 1 and writes to pipe 2.  (or just use
> one pipe if you only need one-way communication)
> 
> -- 
> taa
> /*eof*/
> --
> The Toronto Linux Users Group.      Meetings: http://tlug.ss.org
> TLUG requests: Linux topics, No HTML, wrap text below 80 columns
> How to UNSUBSCRIBE: http://tlug.ss.org/subscribe.shtml
--
The Toronto Linux Users Group.      Meetings: http://tlug.ss.org
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://tlug.ss.org/subscribe.shtml





More information about the Legacy mailing list