Compartilhar via


C6031

Aviso C6031: valor de retorno ignorado: <função> pôde retornar valor inesperado

Esse aviso indicar que a função de chamada não está verificando o valor de retorno de uma chamada de função que deixam de semáforo no valor de retorno.Dependendo de qual a função está sendo chamada, esse defeito pode resultar em comportamento ruim aparentemente aleatória de programa, inclusive falhas e corrupções de dados em condições de erro ou em situações de baixo recurso.

Em geral, não é seguro suponha que uma chamada a funcionar exigindo o disco, a rede, a memória, ou outros recursos sempre terá êxito.O chamador deve sempre verifique o valor de retorno e tratar casos de erro adequadamente.Considere também usar a anotação de _Must_inspect_result_ , que verifica se o valor ser verificado em uma maneira útil.

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 seguinte código:

#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 segura fopen_s para corrigir esse 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 anotadas com a propriedade de _Check_return_ conforme mostrado no seguinte código.

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

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

Para corrigir o aviso anterior, verifique o valor de retorno conforme mostrado no seguinte código:

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

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

Consulte também

Referência

fopen_s, _wfopen_s

Outros recursos

Visão geral de anotação

MustCheck