Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^2: open3 but for n file descriptors

by tange (Initiate)
on Jul 20, 2013 at 07:42 UTC ( #1045428=note: print w/ replies, xml ) Need Help??


in reply to Re: open3 but for n file descriptors
in thread open3 but for n file descriptors

As mentioned I would prefer not to use IPC::Run because IPC::Run is not installed on many of the old distributions supported by GNU Parallel, whereas open3 is. There is typically a reason why people do not upgrade the old systems, and it is therefore unlikely that IPC::Run will be installed.

The PID is currently the way I keep track of which process was started when, so when using --keep-order, I can make sure the output from the dead children is printed in the correct order. But with a bit of recoding this could probably be changed.

I had hoped wrapping open3 with more filedescriptors would be as easy as this meta-code for fd3:

# Record fd3 for later use open($orig_fd{3},">&=",3); for $id (1..10) { open($child{$id,3},">",$tmpfile{$i}); # make $child{$id,3} file descriptor 3 for me and all future childre +n connect_filedescriptor(3,$child{$id,3}); # start the child open3(...) } sub reaper { # When a child dies seek $child{$id,3},0,0; # Print the captured fd3 to the parent's original fd3 print $orig_fd{3} <$child{$id,3}>; close $child{$id,3}; }
I know how to make most of the meta-code, but connect_filedescriptor I do not know how to make.


Comment on Re^2: open3 but for n file descriptors
Download Code
Re^3: open3 but for n file descriptors
by tange (Initiate) on Jul 20, 2013 at 09:19 UTC
    Looking at the man page for open, it seems what I need is this:
    open(my $err, '>', "foo.out"); open(STDERR, ">&", $err);
    but in a generic version, so I can use other file descriptors than STDERR (fd2).

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1045428]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2015-07-04 10:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (59 votes), past polls