Différences entre les versions de « Programmation C/Erreurs »

→‎Exemple : Plus de détails dans l'exemple
(Précisions sur l'utiisation d'errno)
(→‎Exemple : Plus de détails dans l'exemple)
void teste(const char *nombre)
{
/* On réinitialise errno */
errno = 0;
 
/* Appel de strtoul */
unsigned long res = strtoul(nombre, NULL, 10);
 
/* On détecte une erreur de strtoul quand elle renvoie ULONG_MAX _et_
* que errno est non nul. En effet, si on lui passe en entrée la
* représentation de ULONG_MAX, la conversion se fait sans erreur
* et errno reste à 0.
*/
if (res == ULONG_MAX && errno != 0)
{
/* ilIl y a eu une erreur ! */
printf("Impossible de convertir le nombre '%s': %s.\n", nombre, strerror(errno));
}
 
<noinclude>
 
== Notes ==
<references />
Utilisateur anonyme