C6031

경고 C6031: 반환 값이 무시되었습니다. <function>에서 예기치 않은 값을 반환할 수 있습니다.

이 경고는 호출하는 함수가 반환 값을 통해 실패 신호를 보내는 함수 호출의 반환 값을 검사하지 않는다는 것을 나타냅니다. 호출되는 함수에 따라 이 오류는 오류 상태나 리소스 부족 상황에서 충돌과 데이터 손상을 포함하여 무작위의 프로그램 오작동을 발생시킬 수 있습니다.

일반적으로 디스크, 네트워크, 메모리 또는 기타 리소스를 필요로 하는 함수를 호출할 때 항상 성공하리라고 가정해서는 안 됩니다. 호출자는 항상 반환 값을 검사하여 오류 상황을 적절하게 처리해야 합니다.

예제

다음 코드에서는 이 경고를 발생시킵니다.

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

이 경고를 해결하려면 다음 코드에서처럼 함수의 반환 값을 검사합니다.

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

다음 코드에서는 안전한 함수 fopen_s를 사용하여 이 경고를 해결합니다.

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

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

다음 코드에서 볼 수 있는 것처럼 호출자가 MustCheck 속성으로 주석이 지정된 함수의 반환 값을 무시하는 경우에도 이 경고가 생성됩니다.

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

void test_f()

{

func( ); //return value ignored

}

이전 경고를 해결하려면 다음 코드에서처럼 반환 값을 검사합니다.

void test_f()

{

if( func( ) )

{

//code...

}

}

참고 항목

참조

fopen_s, _wfopen_s

MustCheck

개념

주석 개요