C6031

Actualización: noviembre 2007

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.

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 MustCheck, como se muestra en el código siguiente:

#include <codeanalysis\sourceannotations.h>
[returnvalue:SA_Post(MustCheck=SA_Yes)] bool func( );

void test_f()

{

func( ); //return value ignored

}

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

void test_f()

{

if( func( ) )

{

//code...

}

}

Vea también

Conceptos

Información general sobre anotaciones

Referencia

fopen_s, _wfopen_s

MustCheck