Compartir a través de


C6031

Advertencia C6031: Se omitió el valor devuelto. <función> podría devolver un valor inesperado

Esta advertencia indica que la función de llamada no está comprobando el valor devuelto de una llamada a función que señala los errores a través de su valor devuelto.Dependiendo de cuál es la función a la que se está llamando, este defecto puede conducir a errores de comportamiento del programa aparentemente aleatorios, incluidos bloqueos y daños en los datos, en situaciones de error o de escasez de recursos.

En general, no es seguro suponer que una llamada a una función que requiera recursos de disco, red, memoria u otro tipo siempre se ejecutará correctamente.El llamador debe comprobar siempre el valor devuelto y controlar de la forma adecuada los casos de error.También puede utilizar la anotación _Must_inspect_result_, que comprueba que el valor se examina de una forma útil.

Ejemplo

El código siguiente genera esta advertencia:

#include <stdio.h>
void f( )
{
  fopen( "test.c", "r" ); // return value ignored
  // code ...
}

Para corregir esta advertencia, compruebe el valor devuelto de la función como se muestra en el siguiente código:

#include <stdio.h>
void f( )
{
  FILE *stream;
  if((stream = fopen( "test.c", "r" )) == NULL ) 
    return;
  // code ...
}

El código siguiente utiliza la función fopen_s segura para corregir esta advertencia:

#include <stdio.h>
void f( )
{
  FILE *stream;
  errno_t err;

  if( (err  = fopen_s( &stream, "test.c", "r" )) !=0 )
  {
    // code ...
  }
}

Esta advertencia también se genera si el llamador omite el valor devuelto de una función anotada con la propiedad _Check_return_ como se muestra en el código siguiente:

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

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

Para corregir la advertencia anterior, compruebe el valor devuelto como se muestra en el código siguiente:

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

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

Vea también

Referencia

fopen_s, _wfopen_s

Otros recursos

Información general sobre anotaciones

MustCheck