ファイルの多重クローズ

ファイルが 2 回閉じられています。

ファイルハンドルがクローズされると、そのファイルに関連付けられているリソースが解放されます。fclose を 2 回呼び出すと、解放されたメモリーを参照することになります。これは、特にストレージが別の用途に再利用されている場合には、予期しない動作を引き起こします。

ID

問題箇所

説明

1

リソースの割り当て解除

ファイルが最初にクローズされた場所

2

リソースの割り当て解除

ファイルが 2 回目にクローズされた場所


#include <stdio.h>

int main(int argc, char **argv)
{
    FILE *fp = fopen("newfile", "w");
    if (fp != 0) {
        fclose(fp);
        fclose(fp); // bad
    }
}
        

© 2010 Intel Corporation. 無断での引用、転載を禁じます。