No. Look at the definition of winopen2. It dups stdin and stdout to the socket pair prior to starting the child process, so it inherits the sockets as its stdin and stdout; it then restore the originals in the parent once the child is running:
sub winopen2 {
my ($pid, $oldin, $oldout);
my ($server, $client) = winsocketpair
or return undef;
open $oldin, '<&', \*STDIN or return ();
open $oldout, '>&', \*STDOUT or return ();
if (open (STDIN, '<&', $server) and
open (STDOUT, '>&', $server)) {
$pid = eval { system 1, @_ or die "system command failed: $!"};
# print STDERR "error: $@\n" if $@;
}
close STDOUT;
open STDOUT, '>&', $oldout
or carp "unable to reestablish STDOUT";
close STDIN;
open STDIN, '<&', $oldin
or carp "unable to reestablish STDIN";
#printf STDERR "pid %d, fileno %d, stdout %d, stdin %d\n",
# $pid, fileno($client), fileno STDOUT, fileno STDIN;
return ($pid and $pid > 0) ? ($pid, $client) : ();
}
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
|