xref: /plan9/sys/man/2/atof (revision b3b810bf5ee40a27c8f8f139cc4630e599836cfa)
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 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 .L e or .L 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 .LR 0 , hexadecimal if they begin with .L 0x or .LR 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.
BUGS
Atoi, atol, and atoll accept octal and hexadecimal numbers in the style of C, contrary to the ANSI specification.