Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
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 lurking in the Monastery: (13)
As of 2014-12-18 17:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (59 votes), past polls