ATOF(2) ATOF(2) NAME atof, atoi, atol, charstod, strtod, strtol, strtoul - convert text to numbers SYNOPSIS double atof(char *nptr) int atoi(char *nptr) long atol(char *nptr) double charstod(int (*f)(void *), void *a) double strtod(char *nptr, char **rptr) long strtol(char *nptr, char **rptr, int base) ulong strtoul(char *nptr, char **rptr, int base) DESCRIPTION Atof, atoi, and atol convert a string pointed to by nptr to floating, integer, and long integer representation respec- tively. The first unrecognized character ends the string. Atof recognizes an optional string of tabs and spaces, then an optional sign, then a string of digits optionally con- taining a decimal point, then an optional `e' or `E' fol- lowed by an optionally signed integer. Atoi and atol recognize an optional string of tabs and spaces, then an optional sign, then a string of decimal dig- its. Strtod, strtol, and strtoul, behave similarly to atof, and atol and, if rptr is not zero, set *rptr to point to the input character immediately after the string converted. Strtol and strtoul interpret the digit string in the speci- fied base, from 2 to 36, each digit being less than the base. Digits with value over 9 are represented by letters, a-z or A-Z. If base is 0, the input is interpreted as an integral constant in the style of C (with no suffixed type indicators): numbers are octal if they begin with `0', hex- adecimal if they begin with `0x' or `0X', otherwise decimal. Strtoul does not recognize signs. Charstod interprets floating point numbers like atof, but it gets successive characters by calling (*f)(a). The last call to f terminates the scan, so it must have returned a character that is not a legal continuation of a number. Page 1 Plan 9 (printed 12/21/24) ATOF(2) ATOF(2) Therefore, it may be necessary to back up the input stream one character after calling charstod. SEE ALSO fscanf(2) DIAGNOSTICS Zero is returned if the beginning of the input string is not interpretable as a number; even in this case, rptr will be updated. BUGS Atoi and atol accept octal and hexadecimal numbers in the style of C, contrary to the ANSI specification. Page 2 Plan 9 (printed 12/21/24)