C6031C6031

avertissement C6031 : valeur de retour ignorée : <fonction > peut retourner une valeur inattenduewarning C6031: return value ignored: <function> could return unexpected value

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.This warning indicates that the calling function is not checking the return value of a function call that signals failure via its return value. Selon que la fonction est appelée, ce défaut peut entraîner des anomalies de programme aléatoires, y compris les altérations tombe en panne et des données dans les conditions d’erreur ou les situations de ressources insuffisantes.Depending on which function is being called, this defect can lead to seemingly random program misbehavior, including crashes and data corruptions in error conditions or low-resource situations.

En règle générale, il n’est pas supposer qu’un appel de fonction requérant un disque, de réseau, de mémoire ou d’autres ressources réussit toujours sans risque.In general, it is not safe to assume that a call to function requiring disk, network, memory, or other resources will always succeed. L’appelant doit toujours vérifier la valeur de retour et gérer des cas d’erreur de façon appropriée.The caller should always check the return value and handle error cases appropriately. Envisagez également d’utiliser le _Must_inspect_result_ annotation, qui vérifie que la valeur est examinée de façon pratique.Also consider using the _Must_inspect_result_ annotation, which checks that the value is examined in a useful way.

ExempleExample

Le code suivant génère cet avertissement :The following code generates this warning:

#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 :To correct this warning, check the return value of the function as shown in the following code:

#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 :The following code uses safe function fopen_s to correct this warning:

#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 le _Check_return_ la propriété comme indiqué dans le code suivant.This warning is also generated if the caller ignores the return value of a function annotated with the _Check_return_ property as shown in the following code.


#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 :To correct the previous warning, check the return value as shown in the following code:


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

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

Voir aussiSee Also

fopen_s, _wfopen_s à l’aide des Annotations SAL pour réduire les défauts du codefopen_s, _wfopen_s Using SAL Annotations to reduce code defects