$dd_command = <<'EO_COMMAND';
device=/dev/rmt8
dd_noise='^[0-9]+\+[0-9]+ records (in|out)$'
exec 3>&1
status=`((dd if=$device ibs=64k 2>&1 1>&3 3>&- 4>&-; echo $? >&4) |
egrep -v "$dd_noise" 1>&2 3>&- 4>&-) 4>&1`
exit $status;
EO_COMMAND
@dd_output = `$dd_command`;
$status = ($? >> 8);
$signo = ($? & 127);
$cored = ($? & 128);
####
$dd_command = <<'EO_COMMAND';
device=/dev/rmt8
dd_noise='^[0-9]+\+[0-9]+ records (in|out)$'
exec 3>&1
status=`((dd if=$device ibs=64k 2>&1 1>&3 3>&- 4>&-; echo $? >&4) |
egrep -v "$dd_noise" 1>&2 3>&- 4>&-) 4>&1`
exit $status;
EO_COMMAND
$kidpid = open(DD_PIPE, "$dd_command |") // die $!;
while () {
# blah blah blah;
}
close(DD_PIPE);
$status = ($? >> 8);
$signo = ($? & 127);
$cored = ($? & 128);
####
$kidpid = open(FROM_KID, "somecmd 3>&1 1>&2 2>&3 3>&- |") // die $!;
####
$fd3 = $fd1;
$fd1 = $fd2;
$fd2 = $fd3;
$fd3 = undef;