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ÓN

       La  función  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
       función  isspace(3))  seguida  por  un único y opcional signo `+' o `-'.  Si la base is 0 o 16, la cadena
       puede incluir el prefijo `0x', y el número será interpretado en base 16, en caso contrario la  base  cero
       se toma como base 10 (decimal), a menos que el carácter 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, parándose la
       conversión en el primer carácter que no es un dígito válido en la base dada.  (En bases superiores a  10,
       la  letra `A' en mayúsculas o minúsculas representa el 10, `B' representa el 11, y así sucesivamente, con
       la `Z' representando el 35.)

       Si endptr no es NULL, strtol() almacena la dirección del primer carácter no válido  en  *endptr.   Si  no
       hubiera  dígitos  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
       válida.

       La  función strtoll() hace el mismo trabajo que la función strtol() pero devuelve un valor entero de tipo
       long long.

VALOR DEVUELTO

       La función strtol() devuelve el resultado de la conversión, 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 está fuera de rango.

       EINVAL (no está en C99) La base dada contiene un valor no soportado.

       La implementación puede poner también errno a EINVAL en caso de que no se realice ninguna conversión  (no
       se encuentren dígitos, y se devuelva 0).

OBSERVACIONES

       En  otras  localizaciones distintas a la localización "C", se pueden aceptar también otras cadenas.  (Por
       ejemplo, el separador de miles de la localización actual puede estar soportado.)

       BSD tiene también la función

           quad_t
           strtoq(const char *nptr, char **endptr, int base);

       con una definición completamente análoga.  Dependiendo del tamaño de palabra de la  arquitectura  actual,
       ésta 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ÉASE TAMBIÉN

       atof(3), atoi(3), atol(3), strtod(3), strtoul(3)

GNU                                               30 mayo 2002                                         STRTOL(3)