ATOI(10.2) ATOI(10.2) NAME atoi, atol, charstod, strtod, strtol, strtoul, strtoll - convert text to numbers SYNOPSIS 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) vlong strtoll(char *nptr, char **rptr, int base) DESCRIPTION Atoi and atol convert a string pointed to by nptr to inte- ger, and long integer representation respectively. The first unrecognized character ends the string. Leading C escapes are understood, as in strtol with base zero. Atoi and atol recognize an optional string of tabs and spaces, then an optional sign, then a string of decimal dig- its. Strtod, strtol, strtoul, and strtoll behave similarly to atol and, if rptr is not zero, set *rptr to point to the input character immediately after the string converted. Strtod recognizes an optional string of tabs and spaces, then an optional sign, then a string of digits optionally containing a decimal point, then an optional `e' or `E' fol- lowed by an optionally signed integer. Strtol, strtoul and strtoll interpret the digit string in the specified base, from 2 to 36, each digit being less than the base. Digits with value over 9 are represented by let- ters, 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', hexadecimal if they begin with `0x' or `0X', otherwise deci- mal. Strtoul does not recognize signs. Charstod interprets floating point numbers in the same syn- tax as strtod, but it gets successive characters by calling (*f)(a). The last call to f terminates the scan, so it must Page 1 Plan 9 (printed 12/22/24) ATOI(10.2) ATOI(10.2) have returned a character that is not a legal continuation of a number. Therefore, it may be necessary to back up the input stream one character after calling charstod. SOURCE /kern/atol.c /kern/charstod.c /kern/strtod.c /kern/strtol.c /kern/strtoul.c /kern/utils.c 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. Page 2 Plan 9 (printed 12/22/24)