Partager via


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.Envisagez également d'utiliser l'annotation _Must_inspect_result_ , qui vérifie que la valeur est examinée d'une manière utile.

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é _Check_return_, comme indiqué dans le code suivant.

#include <sal.h>
_Check_return_ bool func();

void test_f()
{
    func(); //  Warning C6031
}

Pour corriger l'avertissement précédent, vérifiez la valeur de retour comme indiqué dans le code suivant :

#include <sal.h>
_Check_return_ bool func();

void test_f()
{
    if( func() ) {
        // code …
    }
}

Voir aussi

Référence

fopen_s, _wfopen_s

Autres ressources

Vue d'ensemble de l'annotation

MustCheck