> Date: Tue, 21 Apr 2009 07:48:21 -0700
> From: "Garrett D'Amore" <gdamore at sun.com>
> Message-ID: <49EDDCB5.8080700 at sun.com>
> 
> I. Szczesniak wrote:
  ... ... ...
>> Could you elaborate the difference between Committed and Committed Obsolete?
>>   
> 
> Committed Obsolete means we can't remove it, but you're still 
> discouraged from using it in new code.  That's the case with -b -- it is 
> used to indicate a count in blocks (512 bytes), but the option was 
> removed from the POSIX standard over confusion about what was meant by a 
> "block" (is it a block of bytes, or a block of characters?)
> 
  ... ... ...
> 
>     -- Garrett

Garrett,
I think you misread the tail rationale in the POSIX standard.
SVID3 had a -b option that counted 512-byte blocks; BSD had a -b option
that counted 1024-byte blocks.  The -b option wasn't removed from POSIX;
it was never added in the first place due to this difference in
behavior.

The SVID3 and XPG3 -c options counted in bytes, but the documentation
said it counted characters (I don't remember what the BSD tail man page
said).  The POSIX committee briefly considered changing the -c option to
be -b when the description of -c changed from "characters" to "bytes",
but left it as -c because historical implementations had the -b option
counting blocks even though it wasn't going to be specified by the
standard.

The standard does not currently specify a way to count (multi-byte) 
characters even though this means tail output may start or end in the 
middle of a multi-byte character when using the -c option.

  - Don

Reply via email to