while ($len = sysread(FROM, $buf, 16384)) {
	if (!defined $len) {
		next if $! =~ /^Interrupted/;
		die "System read error: $!\n";
	}
	$offset = 0;
	while ($len) {          # Handle partial writes.
		$written = syswrite(TO, $buf, $len, $offset);
		die "System write error: $!\n"
			unless defined $written;
		$len -= $written;
		$offset += $written;
	};
}
