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

Référence

fopen_s, _wfopen_s

MustCheck

Concepts

Vue d'ensemble de l'annotation