That's a bug; if it's unsigned, you shouldn't be allowed to specify a sign. (Yes, that means that strtoul() and company don't do enough error checking for code that wants to disallow signs for unaligned values.)