Provided by:
manpages-es_1.55-10_all 
NOMBRE
strtol, strtoll, strtoq - convierten una cadena en un entero de tipo
long
SINOPSIS
#include <stdlib.h>
long int
strtol(const char *nptr, char **endptr, int base);
long long int
strtoll(const char *nptr, char **endptr, int base);
DESCRIPCI'ON
La funcion strtol() convierte la parte inicial de la cadena de entrada
nptr en un valor entero de tipo long de acuerdo a la base dada, que
debe estar entre 2 y 36 ambos incluidos o ser el valor especial 0.
La cadena debe comenzar con una cantidad arbitraria de espacios en
blanco, (tal y como los define la funcion isspace(3)) seguida por un
unico y opcional signo `+' o `-'. Si la base is 0 o 16, la cadena
puede incluir el prefijo `0x', y el numero sera interpretado en base
16, en caso contrario la base cero se toma como base 10 (decimal), a
menos que el caracter siguiente sea `0', en cuyo caso se toma como base
8 (octal).
El resto de la cadena se convierte en un entero de tipo long de una
forma evidente, parandose la conversion en el primer caracter que no es
un digito valido en la base dada. (En bases superiores a 10, la letra
`A' en mayusculas o minusculas representa el 10, `B' representa el 11,
y asi sucesivamente, con la `Z' representando el 35.)
Si endptr no es NULL, strtol() almacena la direccion del primer
caracter no valido en *endptr. Si no hubiera digitos en toda la cadena
strtol() almacena el valor original de nptr en *endptr. (y devuelve
0). En particular, si *nptr es distinto de `\0' pero **endptr es `\0'
a la vuelta, la cadena entera es valida.
La funcion strtoll() hace el mismo trabajo que la funcion strtol() pero
devuelve un valor entero de tipo long long.
VALOR DEVUELTO
La funcion strtol() devuelve el resultado de la conversion, a menos que
el valor se desbordara por arriba o por abajo. Si ocurriera un
desbordamiento inferior, strtol() devuelve LONG_MIN. Si ocurriera un
desbordamiento superior, strtol() devuelve LONG_MAX. En ambos casos,
errno se establece a ERANGE. Precisamente lo mismo se aplica a
strtoll() (con LLONG_MIN y LLONG_MAX en lugar de LONG_MIN y LONG_MAX).
ERRORES
ERANGE El valor resultante esta fuera de rango.
EINVAL (no esta en C99) La base dada contiene un valor no soportado.
La implementacion puede poner tambien errno a EINVAL en caso de que no
se realice ninguna conversion (no se encuentren digitos, y se devuelva
0).
OBSERVACIONES
En otras localizaciones distintas a la localizacion "C", se pueden
aceptar tambien otras cadenas. (Por ejemplo, el separador de miles de
la localizacion actual puede estar soportado.)
BSD tiene tambien la funcion
quad_t
strtoq(const char *nptr, char **endptr, int base);
con una definicion completamente analoga. Dependiendo del tamano de
palabra de la arquitectura actual, esta puede ser equivalente a
strtoll() o a strtol().
CONFORME A
strtol() es conforme con SVID 3, BSD 4.3, ISO 9899 (C99) y POSIX, y
strtoll() es conforme con ISO 9899 (C99) y POSIX-2001.
V'EASE TAMBI'EN
atof(3), atoi(3), atol(3), strtod(3), strtoul(3)