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 10/31/25)
     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.
     Page 2                       Plan 9            (printed 10/31/25)