On Fri, 18 Feb 2005 15:23:44 EST, Bill Davidsen said:

> I'll try to build a truth table for this, I'm now working with some 
> non-iso data sets, so I'm a bit more interested. I would expect read() 
> to only try to read one sector, so I'll just do a quick and dirty to get 
> the size from the command line, seek and read.
> 
> I haven't had a problem using dd to date, as long as I know how long the 
> data set was, but I'll try to have results tonight.

The problem is that often you don't know exactly how long the data set is
(think "backup burned to CD/RW") - there's a *lot* of code that does stuff
like

        while (actual=read(fd,buffer,65536) > 0) {
                ...
        }

with the realistic expectation that the last read might return less than 64k,
in which case 'actual' will tell us how much was read.  Instead, we just get
an error on the read.

Note that 'dd' does this - that's why you get messages like '12343+1 blocks 
read'.
We *really* want to get to a point where 'dd' will work *without* having to
tell it a 'bs=' and 'count=' to get the size right....

Attachment: pgptZ019Ji54H.pgp
Description: PGP signature

Reply via email to