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/25/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/25/25)