はじめに
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しようとすると警告が出力されます。
関連記事