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 10/24/25)
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
/libkern/atol.c
/libkern/charstod.c
/libkern/strtod.c
/libkern/strtol.c
/libkern/strtoul.c
/libkern/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 10/24/25)