glenda.party
term% ls -F
term% cat index.txt
ATOF(2)                       System Calls Manual                      ATOF(2)



NAME
       atof,  atoi,  atol, charstod, strtod, strtol, strtoul - convert text to
       numbers

SYNOPSIS
       #include <u.h>
       #include <libc.h>

       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)

       /* Alef only */

       int    strtoi(byte *nptr, byte **rptr, int base)

       uint   strtoui(byte *nptr, byte **rptr, int base)

       float  strtof(byte *nptr, byte **rptr);

DESCRIPTION
       Atof, atoi, and atol convert a string pointed to by nptr  to  floating,
       integer,  and  long integer representation respectively.  The first un‐
       recognized character ends the string.  Leading  C  escapes  are  under‐
       stood, as in strtol with base zero.

       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 or 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, 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  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 suf‐
       fixed type indicators): numbers are octal if they begin with  hexadeci‐
       mal  if  they begin with or otherwise decimal.  Strtoul does not recog‐
       nize signs.

       Charstod interprets floating point numbers like atof, but it gets  suc‐
       cessive  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 con‐
       tinuation  of  a number.  Therefore, it may be necessary to back up the
       input stream one character after calling charstod.

   Alef
       The routines strtol and strtoul are renamed strtoi and strtoui and  re‐
       turn type int and uint.  There is no charstod or atof.  Instead, strtof
       is like a floating-point base 10 strtoi.

SOURCE
       /sys/src/libc/port

SEE ALSO
       fscanf(2)

DIAGNOSTICS
       Zero is returned if the beginning of the input  string  is  not  inter‐
       pretable 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(2)