On 04/22/09 11:16, Don Cragun wrote: >> 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.
Ah, thanks for the clarification. The point is, its ambiguous (512 or 1024), and not part of the standard. So it shouldn't be used in new code. -- Garrett > > - Don