tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: strtonum(3) from OpenBSD?



On Wed, 24 Jun 2009 21:00:53 +0200
Marc Balmer <marc%msys.ch@localhost> wrote:

> 
> Am 24.06.2009 um 20:34 schrieb Steven M. Bellovin:
> 
> > On Wed, 24 Jun 2009 14:24:53 -0400
> > Thor Lancelot Simon <tls%rek.tjls.com@localhost> wrote:
> >
> >> The function generates errno values which can't be used to
> >> distinguish the error cases distinguished by the text strings,
> >> which are (absurdly) specified in its manual page as part of the
> >> API (in other words, the function as specified is inherently
> >> non-localizable).
> >>
> >> If it didn't set errno at all, it would be an example of really,
> >> really bad API design.  Since it does (but doesn't do so usefully),
> >> it's merely an example of bad API design.
> >>
> >> This is NetBSD.  Cleanliness matters.  I'm opposed to adding this
> >> API to the system in its current form.
> >>
> > I'd have phrased it differently, but I agree with Thor -- this is
> > a bad
> > API.  Nor have I seen sufficient evidence that it's widely used in
> > software we might want to import.
> 
> I am eager to learn why it is bad.
> 
The primary issue is that it returns a text string for error
indications, with all the implications for localization and consistency
of style.  It's like the Caliph is alleged to have said about the
Library of Alexandria -- if the information is consistent with errno,
it's unnecessary; if it's inconsistent, it's evil.  (For the story of
the Caliph and the Library -- and a pretty thorough debunking of it --
see http://www.nybooks.com/articles/3517)


                --Steve Bellovin, http://www.cs.columbia.edu/~smb


Home | Main Index | Thread Index | Old Index