in reply to Problems forking and redirecting STDOUT with Win32
Update: To clarify the solution I'm seeking -- it's not an alternative for the fork. I'm aware that there are probably better alternatives on Win32. The question is (I think): given that a fork has been done, is there a way of redirectly STDOUT safely in a way that doesn't also affect the parent so that system gets the right filehandle? If this can't be done, then IPC::Run3 will probably just need to skip the fork tests on Win32.It can't be done, since perl just calls the win32 c runtime system
Demo
C:\>more perl.stdout.fork.pl use strict; use warnings; if (my $pid=fork() ) { sleep(1); print "parent\n"; } else { close STDOUT; open STDOUT, '>'. __FILE__.'.temp' or die $!; print "print child$/"; system("echo echo child"); # printed to console, not to .temp } C:\>perl perl.stdout.fork.pl echo child parent C:\>more perl.stdout.fork.pl.temp print child
|
|---|