Provided by: manpages-es_1.55-10_all bug

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)