Provided by: manpages-fr_1.67.0-1_all bug

NOM

       strtoul,  strtoull,  strtouq - Convertir une chaîne en entier long non-
       signé.

SYNOPSIS

       #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);

DESCRIPTION

       La fonction strtoul() convertit la chaîne nptr en  un  entier  long  en
       fonction  de  l’argument  base,  qui doit être dans l’intervalle 2 à 36
       (bornes comprises), ou avoir la valeur spéciale 0.

       La chaîne peut commencer par  un  nombre  quelconque  d’espaces  ou  de
       caractères  interprétés  comme  tels par isspace(3).  Un signe éventuel
       ‘+’ ou ‘-’ peut suivre.  Si base vaut 0 ou 16, la chaîne  peut  inclure
       un  préfixe  ‘0x’  et  le nombre sera interprété en base 16. Sinon, une
       base valant zéro  est  interprétée  comme  10  (décimale)  sauf  si  le
       caractère suivant est ‘0’, auquel cas la base est 8 (octale).

       Le  reste  de  la  chaîne est converti en une valeur entière longue, en
       s’arrêtant au premier caractère qui ne  soit  pas  un  chiffre  valide.
       Dans les bases supérieures a 10, la lettre ‘A’ (majuscule ou minuscule)
       représente 10, ‘B’  représente  11,  et  ainsi  de  suite  jusqu’à  ‘Z’
       représentant 35.

       Si  endptr  n’est  pas  NULL,  strtoul()  stocke  l’adresse  du premier
       caractère invalide dans *endptr.  S’il n’y avait aucun chiffre  valide,
       strtoul()  stocke  la valeur originale de nptr dans *endptr.  (Donc, si
       *nptr n’est pas ‘\0’ et si **endptr vaut  ‘\0’  en  retour,  la  chaîne
       entière est valide.)

       La  fonction  strtoull()  travaille  comme  strtoul()  mais renvoie une
       valeur entière "long long" non signée.

VALEUR RENVOYÉE

       La fonction strtoul() renvoie soit le résultat de la conversion,  soit,
       s’il  y  avait un signe moins, l’inverse du résultat de la conversion à
       moins que la valeur  originale  provoque  un  débordement,  auquel  cas
       strtoul()  renvoie ULONG_MAX et errno contient le code d’erreur ERANGE.
       La même chose est vraie pour strtoull() avec ULLONG_MAX à la  place  de
       ULONG_MAX.

ERREURS

       ERANGE La chaîne donnée est hors limites. La valeur a été arrondie.

       EINVAL (pas dans C99) La base indiquée n’est pas supportée.

       L’implémentation  peut aussi mettre errno à EINVAL si aucune conversion
       n’a été réalisée (pas de chiffres trouvés, et renvoyé zéro).

NOTES

       Dans des localisations autre que "C",  d’autres  chaînes  peuvent  être
       acceptées.  (Par  exemple,  un  signe  séparateur de milliers peut être
       accepté).

       BSD a aussi

           u_quad_t
           strtouq(const char *nptr, char **endptr, int base);

       avec une définition exactement analogue. Suivant  l’architecture,  cela
       peut âtre équivalent à strtoull() ou strtoul().

CONFORMITÉ

       stroul()  :  SVID  3, BSD 4.3, ISO 9899 (C99), POSIX.  strtoull() : ISO
       9899 (C99) et POSIX-2001.

VOIR AUSSI

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

TRADUCTION

       Christophe Blaess, 1996-2003.