my $old_stdout;
my( $fh, $fn );
sub redir_stdout
{
open $old_stdout,">&STDOUT" or die "Couldn't open old_out to &STDOUT $!";
( $fh, $fn ) = tempfile();
print "tempfile: $fn\n";
open STDOUT, '>&=', $fh or die "Couldn't open STDOUT to tmpfile $fn: $!";
}
sub undir_stdout
{
close STDOUT;
close $fh;
open STDOUT, ">&=", $old_stdout or die "Couldn't reopen STDOUT to old_out: $!";
open $fh, "<$fn" or die "Couldn't open temp file, $fn : $!";
if(wantarray)
{
return <$fh>;
}
else
{
local $/;
return <$fh>;
}
}
####
redir_stdout();
stupid_c_function();
die undir_stdout();
####
open my $old_out, ">&STDOUT" or die $!;
open STDOUT, "> sc_out" or die $!;
send_command('i', "@_", 0 );
#close STDOUT;