ファイルがオープンされましたが、クローズされていません。
ファイルがオープンされると、入出力データバッファーとしてリソースのセットが取得されます。ファイルがクローズされないと、これらのリソースは解放されません。オペレーティング・システムでは、同時に開くことができる最大ファイル数が制限されています。この制限を越えると、それ以降のオープンに失敗します。そのため、不要なファイルはクローズする必要があります。特に実行に時間のかかるプロセスでは、これは重要です。
ID |
問題箇所 |
説明 |
---|---|---|
1 |
リソースの割り当て |
ファイルがオープンされた場所 |
2 |
リソースリーク |
ファイル・ハンドル・リークが発生した場所 |
#include <stdio.h> int main(int argc, char **argv) { int num_open_files = -1; char file_name[20] = "file"; FILE *fp; do { sprintf(file_name + 5, "%08d", num_open_files++); fp = fopen(file_name, "w"); } while (fp != 0); printf("Maximum number of open files = %d\n", num_open_files); }
© 2010 Intel Corporation. 無断での引用、転載を禁じます。