read(): varblk tape records...

Jason Winter
Mon Mar 1 13:32:00 GMT 2004

The NT API 'ReadFile' for reading variable block tape records indicates the 
block length by returning only one full-block at a time (per read call) 
which isn't being honored by CygWin's read() function.

Can CygWin be changed to detect a *tape* read() call and not continue to 
fill the user-buffer after the first ReadFile call returns?

The Tape Block Length information is in MSDN, within the document Q161338 in 
the knowledge base.

It *may* also be the case that setting a SCSI tape (/dev/st0) to 
variable-block mode is required before each write operation under NT/2000 - 
which is slightly different to the way my RetHat Linux 8.0 works, which 
keeps the mode set even after a write call.  Then again it could be my 
setup: Adaptec 1520B SCSI Adaptor w/ 4mm DDS-2 DAT Drive.

You could be a genius! Find out by taking the IQ Test 2003. $5.50 (incl 
GST).  Click here

Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list