if (!open(COPY,'>',$copyfile)) #open the file for writting before we s +tart reading from it { $cf_status = 0; open(COPY,'>&STDOUT'); }; my $pid; if ($pid = fork) { redirect_to_file(); #redirect output to the COPY file . . . open( OLDOUT, ">&STDOUT" ) or ...; open( OLDERR, ">&STDERR" ) or ...; # redirect everything to a capture file; fail if it already exists if ( !sysopen( STDOUT, $outFile, O_WRONLY|O_EXCL|O_CREAT ) ) { ... } open( STDERR, ">& STDOUT" ) or ...; select(STDERR); $| = 1; # make unbuffered select(STDOUT); $| = 1; binmode( STDOUT ); # don't interpret CRLF/Unicode binmode( STDERR ); system('command'); open( STDOUT, ">&OLDOUT" ) or ...; open( STDERR, ">&OLDERR" ) or ...; close( OLDOUT ) or ...; close( OLDERR ) or ...; end_redirection(); waitpid($pid,0); # wait for child process to finish reading and to e +xit } else { die "cannot fork: $!" unless defined $pid; . . #reads from COPY file . }
edited: Thu Jun 26 15:10:13 2003 by jeffa - code tags
In reply to Re: Re: Re: Re: fork system() STDOUT redirection on WindowsXP
by dave_usa
in thread fork system() STDOUT redirection on WindowsXP
by dave_usa
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |