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'ON

       La funcion 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 unico
       signo `+' o `-'.  Si base es  cero  o  16,  la  cadena  puede  entonces
       incluir  un  prefijo  `0x'  ,  y el numero se leera 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, deteniendose en el primer caracter que  no  sea  un
       digito valido en la base dada. (En bases por encima de 10, la letra `A'
       mayuscula o minuscula representa  10,  `B'  representa  11,  y  asi  en
       adelante, con `Z' representando 35).

       Si  endptr  no  es  NULL,  strtoul()  almacena  la direccion del primer
       caracter no valido en  *endptr.  Si  no  hubiera  digitos  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 valida.

       La  funcion  strtoull()  hace el mismo trabajo que la funcion strtoul()
       pero devuelve un valor entero de tipo long long.

VALOR DEVUELTO

       La funcion strtoul() devuelve o el resultado de  la  conversion  o,  si
       hubiera  un  signo  menos  delante,  la  negacion  del  resultado de la
       conversion, 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 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

           u_quad_t
           strtouq(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
       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'EASE TAMBI'EN

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