> 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