Votre IP: 38.107.179.240 
  
 
Google
 
Accueil e-mail Linux
Linux
Perl
Perl
C
Langage C
Dico
Dictionnaire
Biblio liens
Bibliothèque de liens
Index articles
Index articles
 

Date création : 27-03-2008 20:23:44

Linux  Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]


STRTOUL

 

Index

  1. NOM
  2. SYNOPSIS
  3. DESCRIPTION
  4. VALEUR RENVOYÉE
  5. ERREURS
  6. NOTES
  7. CONFORMITÉ
  8. EXEMPLE
  9. VOIR AUSSI
  10. TRADUCTION

 

NOMIndex

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

SYNOPSISIndex

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

DESCRIPTIONIndex

La fonction strtoul() convertit la chaîne nptr en un entier long non signé 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 » 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 '' et si **endptr vaut '' 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ÉEIndex

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.  

ERREURSIndex

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

NOTESIndex

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 unsigned long équivalente sans avertissement.  

CONFORMITÉIndex

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

EXEMPLEIndex

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

VOIR AUSSIIndex

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

TRADUCTIONIndex

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.
La traduction de cette page de manuel est basée sur les traductions disponibles sur http://manpagesfr.free.fr/, mais est gérée par l'équipe francophone de traduction de Debian au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction 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> ».


Création : octobre 2007  © Tous droits réservés 2007 linux-perl-c
Valid HTML 4.01 TransitionalValid CSS