> Based on the man page, I see the following deficiencies: > 1) No support for bases other than 10 it's meant for converting numbers, not addresses. if you want strtoaddr, or strtomode_t, there's still strtol. the idea was to keep it simple. most people think about sending 10 packets, not 0xa packets. > 2) No provision to return the end of the converted string exactly, there's no need for it. strtonum is used to convert a "string containing a number" not a "string containing a number optionally followed by some other things which are not the number". if strlen() won't give you want you want, it means the input is not appropriate for strtonum. > 3) No simple way to distinguish errors from a valid zero. check errstr. i updated the man page to clearly reflect the fact it will be NULL on sucess, that was the original intention. the whole errno dance is there precisely because it's the only way to tell if strtol failed and is so completely unnatural we want to insulate the user from it. i think you guys are missing the point of why strtonum exists. if it did exactly what strtol does, why bother? strtol - #1 - #2 - #3 = strtonum. strtonum came about because ping had a whole variety of issues with numerical arguments. i created a strtonum function for it that was pretty much special case. it doesn't take long to realize that there's also ping6. and another thing. so the interface was widened up some. but not too big. there was a lot of discussion about exactly what strtonum would do, what it wouldn't do, and how one would use it. you don't have to agree with our decisions, but it sounds like you're descending in on "strtol but not called strtol". -- someone's writing down your mistakes someone's documenting your downfallReceived on Thu Apr 14 2005 - 00:20:59 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:32 UTC