小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


【cppcheck】error: Used file that is not opened.

はじめに

C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。

error: Used file that is not opened.

cppcheckのバージョン
  • v1.67
サンプルプログラム

以下のソースプログラムを解析にかけると表示されます。

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#pragma warning ( disable : 4996 )

int _tmain(int argc, _TCHAR* argv[])
{
  FILE *fp;
  fp = fopen("C:\\hoge.ini", "r");
  if(fp == NULL)
  {
    // エラー
    return -1;
  }
  fclose(fp);
  fclose(fp);  // error: Used file that is not opened.

  _getch();
  return 0;
}

上記のように、一度fcloseしたファイルポインタを再びfcloseしようとすると警告が出力されます。

関連記事