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

NOM

       strtol, strtoll, strtoq - Convertir une chaîne en un entier long.

SYNOPSIS

       #include <stdlib.h>

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

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

DESCRIPTION

       La  fonction  strtol()  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  à  10,  la  lettre  « A »  (majuscule  ou
       minuscule)  représente  10,  « B »  represente  11,  et  ainsi de suite
       jusqu’à « Z » représentant 35.

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

       La fonction strtoll() travaille comme strtol() mais renvoie une  valeur
       entière de type "long long".

VALEUR RENVOYÉE

       La  fonction  strtol()  renvoie  le  résultat de la conversion, à moins
       qu’un débordement superieur  (overflow)  ou  inférieur  (underflow)  se
       produise.   Si  un  dépassement  inférieur se produit, strtol() renvoie
       LONG_MIN.  Si un dépassement supérieur  se  produit,  strtol()  renvoie
       LONG_MAX.   Dans  les deux cas, errno contient le code d’erreur ERANGE.
       La même chose est vraie pour strtoll() avec LLONG_MIN et LLONG_MAX à la
       place de LONG_MIN et LONG_MAX.

ERREURS

       ERANGE La  chaîne n’était pas dans l’intervalle acceptable, la valeur a
              été arrondie.

       EINVAL (pas dans C99) La base donné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

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

       avec  une  définition exactement analogue. Suivant l’architecture, cela
       peut être équivalent à strtoll() ou strtol().

CONFORMITÉ

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

VOIR AUSSI

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

TRADUCTION

       Christophe Blaess, 1996-2003.