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

NOMBRE

       strtoul, strtoull, strtouq - convierten una cadena en un entero largo sin signo

SINOPSIS

       #include <stdlib.h>

       unsigned long int
       strtoul(const char *nptr, char **endptr, int base);

       unsigned long long int
       strtoull(const char *nptr, char **endptr, int base);

DESCRIPCIÓN

       La función strtoul() convierte la parte inicial de la cadena nptr en un valor entero largo
       sin signo de acuerdo con la base dada, la cual debe estar entre 2 y 36 inclusive, o ser el
       valor especial 0.

       La cadena debe comenzar con una cantidad arbitraria de espacios en blanco (determinado por
       isspace(3)) y seguida por un opcional y único signo `+' o `-'.  Si base es cero o  16,  la
       cadena  puede  entonces incluir un prefijo `0x' , y el número se leerá en base 16; en caso
       contrario, una base cero se toma como 10 (decimal) a menos que el siguiente  caracter  sea
       `0', en cuyo caso se toma como 8 (octal).

       El  resto de la cadena se convierte en un valor entero largo sin signo de la manera obvia,
       deteniéndose en el primer caracter que no sea un dígito válido en la base dada. (En  bases
       por  encima  de 10, la letra `A' mayúscula o minúscula representa 10, `B' representa 11, y
       así en adelante, con `Z' representando 35).

       Si endptr no es NULL, strtoul() almacena la dirección del primer  caracter  no  válido  en
       *endptr. Si no hubiera dígitos en absoluto strtoul() 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  strtoull()  hace  el  mismo trabajo que la función strtoul() pero devuelve un
       valor entero de tipo long long.

VALOR DEVUELTO

       La función strtoul() devuelve o el resultado de la conversión o, si hubiera un signo menos
       delante,  la  negación  del resultado de la conversión, a menos que el valor original (no-
       negado) se hubiera sobrepasado; en tal caso, strtoul() devuelve ULONG_MAX y asigna  ERANGE
       a  la variable global errno.  Precisamente lo mismo se aplica a strtoull() (con ULLONG_MAX
       en lugar de ULONG_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

           u_quad_t
           strtouq(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 strtoull() o a strtoul().

CONFORME A

       strtoul() es conforme con SVID 3, BSD 4.3,  ISO  9899  (C99)  y  POSIX,  y  strtoull()  es
       conforme con ISO 9899 (C99) y POSIX-2001.

VÉASE TAMBIÉN

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