|  | 
 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)
 vlong    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 integer (vlong)
    representation respectively. The first unrecognized 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 containing a
    decimal point, then an optional e or E followed 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 digits. 
    
    
    Strtod, strtol, strtoll, strtoul, and strtoull 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, strtoll, strtoul, and strtoull 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 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     
 SEE ALSO    
 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. These routines set errstr.
 
 | 
 BUGS     
 |  |  |  | Atoi and atol accept octal and hexadecimal numbers in the style
    of C, contrary to the ANSI specification. 
    
    
    Atof, strtod, strtol, strtoul, strtoll, and strtoull are not provided:
    they are expected to be provided by the underlying system. 
    
    
    Because they are implemented in the fmt library, charstod and
    strtod are preprocessor macros defined as fmtcharstod and fmtstrtod.
    
    
    
    To avoid name conflicts with the underlying system, atoi, atol,
    and atoll are preprocessor macros defined as p9atoi, p9atol, and
    p9atoll; see intro(3). 
 | 
 |  |