ATOF(2) ATOF(2) NAME atof, atoi, atol, atoll, charstod, strtod, strtol, strtoll, strtoul, strtoull - convert text to numbers SYNOPSIS #include <u.h> #include <libc.h> double atof(char *nptr) int atoi(char *nptr) long atol(char *nptr) vlong atoll(char *nptr) double charstod(int (*f)(void *), void *a) double strtod(char *nptr, char **rptr) long strtol(char *nptr, char **rptr, int base) vlong strtoll(char *nptr, char **rptr, int base) ulong strtoul(char *nptr, char **rptr, int base) uvlong strtoull(char *nptr, char **rptr, int base) DESCRIPTION Atof, atoi, atol, and atoll convert a string pointed to by nptr to floating, integer, long integer, and long long inte- ger (vlong) representation respectively. The first unrecog- nized character ends the string. Leading C escapes are understood, as in strtol with base zero (described below). 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, strtoll, strtoul, and strtoull behave simi- larly to atof and atol and, if rptr is not zero, set *rptr to point to the input character immediately after the string converted. Strtol, strtoll, strtoul, and strtoull interpret the digit Page 1 Plan 9 (printed 12/21/24) ATOF(2) ATOF(2) string in the specified base, from 2 to 36, each digit being less than the base. Digits with value over 9 are repre- sented 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', hexadecimal if they begin with `0x' or `0X', otherwise decimal. Charstod interprets floating point numbers in the manner of atof, but 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. Therefore, it may be necessary to back up the input stream one character after calling charstod. SOURCE /sys/src/libc/port 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, atol, and atoll accept octal and hexadecimal numbers in the style of C, contrary to the ANSI specification. Page 2 Plan 9 (printed 12/21/24)