February 16, 2004 strtoul problem | ||||
---|---|---|---|---|
| ||||
1.c: #include <stdio.h> #include <stdlib.h> #include <errno.h> int main(int argc, char *argv[]) { unsigned long number = strtoul(argv[1], 0, 10); if (errno) { perror("Incorrect integer value"); return 1; } printf("number = %lu\n", number); return 0; } dmc 1.c & 1 abc number = 0 Function strtoul doesn't set errno if the conversion can not be performed. David |
February 18, 2004 Re: strtoul problem | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Grimes | This is the correct behaviour according to the standard. (There is an erratum in the description of the function in my C book) David "David Grimes" <dgrimes@friberg.us> wrote in message news:c0p42c$2vfh$1@digitaldaemon.com... > 1.c: > #include <stdio.h> > #include <stdlib.h> > #include <errno.h> > > int main(int argc, char *argv[]) > { > unsigned long number = strtoul(argv[1], 0, 10); > > if (errno) > { > perror("Incorrect integer value"); > return 1; > } > > printf("number = %lu\n", number); > return 0; > } > > dmc 1.c & 1 abc > number = 0 > > Function strtoul doesn't set errno if the conversion can not be performed. > > David > > |
Copyright © 1999-2021 by the D Language Foundation