C6031
Mise à jour : novembre 2007
C6031
Avertissement C6031 : Valeur de retour ignorée : <fonction> peut retourner une valeur inattendue
Cet avertissement indique que la fonction d'appel ne vérifie pas la valeur de retour d'un appel de fonction qui signale un échec via sa valeur de retour. En fonction de la fonction appelée, ce défaut peut entraîner un comportement de programme incorrect et apparemment aléatoire, notamment des blocages et des altérations de données dans les conditions d'erreur ou les situations de ressources limitées.
En général, il est déconseillé de croire que le succès d'un appel de fonction requérant un disque, un réseau, de la mémoire ou d'autres ressources est toujours garanti. L'appelant doit toujours vérifier de manière appropriée la valeur de retour et les cas d'erreur du handle.
Exemple
Le code suivant génère cet avertissement :
#include <stdio.h>
void f( )
{
fopen( "test.c", "r" ); // return value ignored
// code ...
}
Pour corriger cet avertissement, vérifiez la valeur de retour de la fonction comme indiqué dans le code suivant :
#include <stdio.h>
void f( )
{
FILE *stream;
if((stream = fopen( "test.c", "r" )) == NULL )
return;
// code ...
}
Le code suivant utilise la fonction sécurisée fopen_s pour corriger cet avertissement :
#include <stdio.h>
void f( )
{
FILE *stream;
errno_t err;
if( (err = fopen_s( &stream, "test.c", "r" )) !=0 )
{
// code ...
}
}
Cet avertissement est également généré si l'appelant ignore la valeur de retour d'une fonction annotée avec la propriété MustCheck, comme indiqué dans le code suivant :
#include <codeanalysis\sourceannotations.h>
[returnvalue:SA_Post(MustCheck=SA_Yes)] bool func( );
void test_f()
{
func( ); //return value ignored
}
Pour corriger l'avertissement précédent, vérifiez la valeur de retour comme indiqué dans le code suivant :
void test_f()
{
if( func( ) )
{
//code...
}
}
Voir aussi
Concepts
Vue d'ensemble de l'annotation