C6031
Aviso C6031: Retorna valor ignorado: <função>poderia retornar valor inesperado
Este aviso indica que a função telefonar não está verificando o valor retornado de telefonar de função que sinaliza falha por meio de seu valor retornado.Dependendo de qual função está sendo chamada, esse defeito pode levar a falhas de programa aparentemente aleatórios, incluindo corrupções de dados e falhas no recurso de baixo situações ou condições de erro.
Em geral, não é seguro considerar que uma telefonar à função necessidade de disco, rede, memória ou outros recursos sempre terá êxito.O chamador deve sempre verificar o valor retornado e lidar com casos de erro adequadamente.
Exemplo
O código a seguir gera este aviso:
#include <stdio.h>
void f( )
{
fopen( "test.c", "r" ); // return value ignored
// code ...
}
Para corrigir esse aviso, verificar o valor retornado da função, sistema autônomo mostra o código a seguir:
#include <stdio.h>
void f( )
{
FILE *stream;
if((stream = fopen( "test.c", "r" )) == NULL )
return;
// code ...
}
O código a seguir usa a função seguro fopen_s Para corrigir este aviso:
#include <stdio.h>
void f( )
{
FILE *stream;
errno_t err;
if( (err = fopen_s( &stream, "test.c", "r" )) !=0 )
{
// code ...
}
}
Esse aviso também será gerado se o chamador ignora o valor retornado de uma função anotado com o MustCheck propriedade, sistema autônomo mostrado no código a seguir:
#include <codeanalysis\sourceannotations.h>
[returnvalue:SA_Post(MustCheck=SA_Yes)] bool func( );
void test_f()
{
func( ); //return value ignored
}
Para corrigir o aviso anterior, verificar o valor retornado, sistema autônomo mostra o código a seguir:
void test_f()
{
if( func( ) )
{
//code...
}
}