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
In reply to Re: Problems forking and redirecting STDOUT with Win32
by PodMaster
in thread Problems forking and redirecting STDOUT with Win32
by xdg
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |