Compartilhar via


C6031

Aviso C6031: retorne o valor ignorado: <function> poderia retornar o valor inesperado

Este aviso indica que a função de chamada não está verificando o valor de retorno de chamada de função que sinaliza falha por meio de seu valor de retorno. Dependendo de qual função está sendo chamada, esse defeito pode causar comportamento equivocado aparentemente aleatório de programa, incluindo corrupções de dados e falhas em condições de erro ou situações de recursos baixos.

Em geral, não é seguro pressupor que uma chamada de função que exigem o disco, rede, memória ou outros recursos sempre terá êxito. O chamador deve sempre verificar o valor de retorno e tratar de 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, verifique o valor de retorno da função, conforme mostrado no 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 de segurança 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 é gerado se o chamador ignora o valor de retorno de uma função anotado com o MustCheck propriedade conforme 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, verifique o valor de retorno, como mostrado no código a seguir:

void test_f()

{

if( func( ) )

{

//code...

}

}

Consulte também

Referência

fopen_s, _wfopen_s

MustCheck

Conceitos

Visão geral de anotação