« Programmation C/Entrées/sorties » : différence entre les versions

Contenu supprimé Contenu ajouté
Tados (discussion | contributions)
mAucun résumé des modifications
Ligne 170 :
En retour elle indique le nombre de caractères qui a été écrit à l'écran, dans le flux ou la zone mémoire ('''caractère nul non compris''' pour <code>sprintf</code>).
 
Bien que cela àait déjà été traité dans la section dédiée aux chaines de caractères, il faut faire très attention avec la fonction <code>sprintf()</code>. Dans la mesure où la fonction n'a aucune idée de la taille de la zone mémoire transmise, il faut s'assurer qu'il n'y aura pas de débordements. Mieux vaut donc utiliser la fonction <code>snprintf()</code>, qui permet de limiter explicitement le nombre de caractère à écrire.
 
À noter que <code>snprintf()</code> devrait toujours retourner la taille de la chaine à écrire, indépendamment de la limite fixée par le paramètre <code>taille</code>. Le conditionnel reste de mise, car beaucoup d'implémentations de cette fonction se limitent à retourner le nombre de caractères ''écrit'', c'est à dire en s'arrêtant à la limite le cas échéant.