Copie et concaténation de chaînes de caractères en langage C : 2/2 les fonctions strtnt

Magazine
Marque
GNU/Linux Magazine
Numéro
267
Mois de parution
janvier 2024
Spécialité(s)


Résumé

Dans l’article précédent avaient été présentés les problèmes posés par la copie/concaténation de chaînes de caractères en langage C et il avait été montré à la fois combien il était délicat d’effectuer ces deux opérations à l’aide des fonctions de la bibliothèque standard C et combien étaient insatisfaisantes les fonctions proposées pour les remplacer. De plus, il avait été vu que la fragilité de ces fonctions provenait de l’hypothèse suivante (depuis longtemps caduque) : les arguments fournis à ces fonctions sont toujours de bonne qualité, c’est-à-dire que leur valeur a été correctement vérifiée par la fonction appelante.


Pour concevoir des fonctions de copie/concaténation plus robustes, je suis parti du paradigme inverse suivi par les implémenteurs d’appels système (comme open ou mkdir) : ces derniers effectuent des opérations sensibles (pour le bon fonctionnement du système), par conséquent tous leurs arguments sont minutieusement vérifiés et une valeur de retour précise clairement quel a été le résultat de l’exécution. Dans cette deuxième partie, je vais décrire un ensemble de fonctions de copie/concaténation appelées fonctions strtnt qui suivent ce paradigme de manière à rendre plus robustes les programmes qui les utilisent.

Les fonctions strtnt [1] permettent de copier/concaténer aussi bien des chaînes entières que des sous-chaînes. Elles ont été conçues de manière à être plus robustes que toutes les fonctions vues précédemment, plus aisées à comprendre et à manipuler, minimisant les risques d’erreurs liées à la copie et à la concaténation de...

Cet article est réservé aux abonnés. Il vous reste 93% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous