Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!samsung!uunet!hsi!stevens From: stevens@hsi.UUCP (Richard Stevens) Newsgroups: comp.unix.questions Subject: QIC cartridge tape questions Message-ID: <1849@hsi86.hsi.UUCP> Date: 24 Jul 90 13:05:21 GMT Organization: 3M Health Information Systems, Wallingford, CT. Lines: 46 Although I've used "real" mag tapes under Unix for years, I'm new to the cartridge tape world and have a few questions (which I haven't found answers to in any of the manuals that I have). I'm using a QIC-150 cartridge tape drive (SCSI interface) on a Data General AViiON, running DG/UX 4.30. I'm trying to port a tape copying program from a BSD VAX and don't know if the problems I'm having are endemic to cartridge tapes in general, or if DG's tape driver is brain-damaged. What are the differences between these cartridge tape drives and "real" mag tapes ? I'm aware of the limitation of writing 512-byte physical blocks. That's fine -- everything I plan to write to the tape will be multiples of 512. Is this the only difference ? Can I read and write EOF markers just like normal tapes ? Do they use a double EOF to mark the logical EOT ? The problems I'm having are with *multiple* files on a single tape. (Multiple tape files, not multiple Unix files.) For example, I rewind the tape, then write some records to the tape using tar. I can read the tape using tar without any problems. But, if I rewind the tape, forward space one file (no-rewind device, of course) and then try to read the next file (expecting to hit the second EOF that should have been written when tar closed the device), I get a read error. This implies that (1) the driver didn't write two EOFs when tar closed the device; (2) cartridge tapes don't use double EOFs to delineate the logical EOT; (3) the driver doesn't handle the reading of two consecutive EOFs correctly. As another test I rewind the tape and write some records to it using tar again. When the tape is rewound I forward space one file, then use mt to write a single EOF. This generates an "Invalid argument" error from the mt command. This implies that (1) you can't write an EOF after another EOF (i.e., you can't write a double EOF on the tape); (2) the driver is really broken. Any pointers would be appreciated. Richard Stevens 3M Health Information Systems, Wallingford, CT stevens@hsi.com ... { uunet | yale } ! hsi ! stevens