strtoul

STRTOUL(3)                 Manuel du programmeur Linux                STRTOUL(3)



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 (consulter
   feature_test_macros(7)) :

       strtoull() :
           _ISOC99_SOURCE ||
               || /* Versions de la glibc <= 2.19 : */ _SVID_SOURCE ||
           _BSD_SOURCE

DESCRIPTION
       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 (tels que
       définis par isspace(3)) suivis d'un éventuel signe « + » ou « - ». 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 (base décimale) sauf si le caractère suivant est « 0 », auquel
       cas la base est 8 (base 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 la base indiquée. 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
       non autorisé dans *endptr. S'il n'y a aucun chiffre, 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 valable.

       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
       neprovoque 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 prise en charge.

       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 0 renvoyé).

ATTRIBUTS
       Pour une explication des termes utilisés dans cette section, consulter
       attributes(7).

       ┌─────────────────────────────────┬──────────────────────┬────────────────┐
       │Interface                        Attribut             Valeur         │
       ├─────────────────────────────────┼──────────────────────┼────────────────┤
       │strtoul(), strtoull(), strtouq() │ Sécurité des threads │ MT-Safe locale │
       └─────────────────────────────────┴──────────────────────┴────────────────┘
CONFORMITÉ
       strtoul() : POSIX.1-2001, POSIX.1-2008, C89, C99 SVr4.

       strtoull() : POSIX.1-2001, POSIX.1-2008, C99.

NOTES
       Comme strtoul() peut légitimement renvoyer 0 ou ULONG_MAX (ULLONG_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 valables et sont converties
       en une valeur de type unsigned long int équivalente sans avertissement.

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

VOIR AUSSI
       a64l(3), atof(3), atoi(3), atol(3), strtod(3), strtol(3), strtoumax(3)

COLOPHON
       Cette page fait partie de la publication 5.08 du projet man-pages Linux.
       Une description du projet et des instructions pour signaler des anomalies
       et la dernière version de cette page, peuvent être trouvées à l'adresse
       https://www.kernel.org/doc/man-pages/.


TRADUCTION
       La traduction française de cette page de manuel a été créée par
       Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin
       <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>,
       François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe
       Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-
       luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas
       Huriaux <thomas.huriaux@gmail.com>, Nicolas François
       <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>,
       Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier
       <barbier@debian.org>, David Prévot <david@tilapin.org> et Grégoire Scano
       <gregoire.scano@malloc.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la GNU General Public License version 3 concernant les conditions de
       copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,
       veuillez envoyer un message à <debian-l10n-french@lists.debian.org>.



GNU                                9 juin 2020                        STRTOUL(3)