Loading

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

   Exigences de  macros  de  test  de  fonctionnalités  pour  la  glibc  (voir
   feature_test_macros(7)) :

       strtoull() : XOPEN_SOURCE >= 600 || _BSD_SOURCE || _SVID_SOURCE ||
       _ISOC99_SOURCE ; ou cc -std=c99

       La fonction strtoul() convertit le début  de  la  chaîne  nptr  en  une
       valeur  de  type  unsigned long int 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 de type unsigned  long
       int,  en  s’arrêtant  au  premier  caractère qui ne soit pas un chiffre
       valable. Dans les bases supérieures à 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  (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 strtoull()  travaille  comme  strtoul()  mais  renvoie  une
       valeur entière de type unsigned long long int.

VALEUR RENVOYÉE

       La  fonction strtoul() renvoie soit le résultat de la conversion, soit,
       s’il y avait un signe moins, l’opposé  du  résultat  de  la  conversion
       représentée  comme  une  valeur  non  signée,  à  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

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

       ERANGE La valeur retournée est hors limites.

       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).

CONFORMITÉ

       strtoul()  est conforme à SVr4, C89, C99 et POSIX-2001, et strtoull() à
       C99 et POSIX.1-2001.

NOTES

       Comme strtoul() peut légitimement renvoyer  0  ou  LONG_MAX  (LLONG_MAX
       pour  strtoull())  à  la fois en cas de succès et d’échec, le programme
       appelant doit positionner errno à 0 avant l’appel, et déterminer si une
       erreur  s’est  produite  en  regardant  si errno a une valeur non nulle
       après l’appel.

       Dans des localisations autre que « C », d’autres chaînes  peuvent  être
       acceptées.  Par  exemple,  un  signe  séparateur  de  milliers  pour la
       localisation actuelle 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().

       Des   valeurs   négatives  sont  considérées  comme  valides,  et  sont
       converties en une valeur de type unsigned  long  int  équivalente  sans
       avertissement.

EXEMPLE

       Voyez  l’exemple  dans  la page de manuel strtol(3) ; l’utilisation des
       fonctions décrites dans cette page de manuel est identique.

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de  la  publication  3.23  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par         Nicolas         François
       <nicolas.francois@centraliens.net>   et   l’équipe    francophone    de
       traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».