Subject: Re: bug#7362: dd strangeness

From: Paul Eggert <[email-masked]>
Date: Tue, 01 Mar 2011 09:45:42 -0800

On 03/01/2011 03:27 AM, Pádraig Brady wrote:

> So the standard way to accumulate short reads to a full write,
> is to specify separate ibs and obs (we'd probably want to prompt about
> setting obs too for efficiency)

Yes, good point, the diagnostic should suggest ibs=N obs=N
(instead of just ibs=N).

By the way, the relationship between fullblock and ibs=N obs=N is
a curious one, one that I don't fully understand.  If you have
ibs=N obs=N, why would you need fullblock?  This should probably
be documented (preferably by someone who understands it :-).

>>   * Rather than warn about potential problems, how about diagnosing the
>>     problems only when they actually occur?  That would help us avoid
>>     crying wolf.
>
> I like that idea, except that users might only hit an issue
> on particular runs, or when moving from a test file
> to a pipe in production.

True in both cases, but in practice these problems would
be pretty rare compared to the problem of dd crying wolf.
It's fairly common for people to use dd bs=N to extract sections
of regular files, e.g., "dd bs=1k count=1 seek=1 if=bigfile",
and issuing warnings in these cases (when dd operates perfectly
well) would cause unnecessary confusion.

> Checking POSIXLY_CORRECT allows one to disable the warnings

Yes, but POSIXLY_CORRECT should be used only to make a program conform
to POSIX when the default behavior does not conform.  It shouldn't
be used for auxiliary purposes such as suppressing warnings.  If we
want an option to suppress warnings, we should add one; but we
shouldn't overload POSIXLY_CORRECT.