« Conseils de codage en C/Robustesse des programmes » : différence entre les versions

Contenu supprimé Contenu ajouté
Thierry46 (discussion | contributions)
Début rédaction
 
Thierry46 (discussion | contributions)
Conseil : Test des codes retours
Ligne 39 :
* Les outils de vérification statique, comme '''splint''', émettent un warning lorsqu'une clause ''default'' est oubliée.
* Un comptage des mots clés des mots switch et default dans un éditeur de texte ou avec les outils '''grep''' et '''wc''' d'UNIX.
 
==Test des codes retours==
Les codes de retour des fonctions et surtout des appels systèmes doivent être testés.
 
===Justification===
Les codes retournés par les fonctions peuvent signaler :
* des problèmes dans leur déroulement : validité des paramètres, erreurs de calcul...
* des erreurs dues à l’environnement du logiciel : non - conformité de l’arborescence des fichiers, droits d’accès, ressources non disponibles...
 
Ignorer ces problèmes peut conduire aux pires catastrophes.
 
Une bonne habitude consiste à caster en void tous les appels à des fonctions dont on souhaite ignorer les codes retour. Cette pratique facilite les contrôle avec les outils qualité.
 
===Exemple===
<source lang="C">
//...
hFile = fopen(NOM_FIC, "r");
if (hFile == NULL)
{
perror("Erreur");
(void)fprintf(stderr,
"Impossible d'ouvrir %s en lecture\n",
NOM_FIC);
exit(EXIT_FAILURE);
}
</source>
 
===Outils===
Les outils de contrôle statiques comme '''splint''' émettent un warning lorsqu'un codes retour de fonction n'est pas testé ou explicitement ignoré.