Linux has the Unix-standard mt command, too, which
allows setting
the blocksize the system device uses, either explicitly or to a
variable blocksize.
Ah... I have never used that facet of 'mt' before
You dont need 'mt' (under any UNIX system) to read non-local tape
formats.
"Under any UNIX system"? Have you tried them all?
It doesn't even work that way: by using
'mt' to set the block size,
you only set its *reblocking* factor.
This depends on the drive hardware and the driver. Some tape drives
really do have fixed hardware block sizes. Even if setting a variable
block size just causes the drive to do reblocking of some fixed on-tape
block size, it still looks like a variable size block to the host.
(Indeed, a classic half-inch tape can be thought of as having a fixed
one-byte block size which is reblocked in hardware according to control
information on the tape, though that's not a terribly useful POV.)
where usually, a length of 0 indicates an EOF (end of
logical file,
aka "first tape mark detected") or EOT (end of tape, aka "second
consequtive tape mark detected") situation.
If you are using real half-inch tapes, detecting EOT is hard. I've run
into tapes with a dozen consecutive tape marks and data after them;
with some hardware, if you keep reading you'll eventually run off the
*physical* end of the tape - I've done it, and on the less friendly
drives it's a mess to re-thread the tape enough to rewind it onto the
original reel.
/~\ The ASCII der Mouse
\ / Ribbon Campaign
X Against HTML mouse(a)rodents.montreal.qc.ca
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B