1

重複の可能性:
Cでfcloseなしのfopen

Cでfclose関数を使用する必要があるのはなぜですか?cでファイルを開くたびにファイルを閉じますが、それでも知識のために、 fclose関数を使用しないとどうなるか知りたいですか?fcloseを使用しないことで問題が発生した場合は、共有してください。

4

3 に答える 3

6

ファイルを閉じないと、さらにファイルを作成するためのリソースが不足します。Linux では、デフォルトはプロセスごとに 1024 個のオープン ファイルです。これは、「ファイル ハンドル」がテーブルへのインデックス (つまり、配列のインデックス) であるためです。Windows での処理方法はわかりませんが、ファイルを閉じずにファイルを開き続けると、遅かれ早かれプロセスのリソースが不足します。

一方、プログラムの存続期間全体で使用する単一のファイルを開く場合は、常に開いたり閉じたりする必要はありません。一度開いて、開いたままにします。また、プロセスを終了すると、開いているすべてのファイルが閉じられるため、プログラムがファイルをすばやく処理して終了するだけの場合は、ファイルを閉じる必要はありませんただし、コードを確認している場合は、それについてメモを追加します。リソース (メモリ、ファイル、その他のもの) を割り当てる場合は、システムによって自動的に行われたとしても、それが完了したら解放する必要があると思います。

于 2012-10-12T10:10:57.240 に答える
1

どのファイルもi/o ソースなので、どのソースにも似てます。
fclose関数はその理由で使用され、ファイルを別のマネージャー/プロセッサーなどで使用できるようにします。
fclose 関数を使用しないと、別のプロセス/マネージャーが特定のファイルにアクセスできないという状況につながる可能性があります。

于 2012-10-12T10:10:52.040 に答える
0

ファイルを閉じないと、すべての情報がメモリに保存されない可能性があります。また、そのファイルは他の誰かが開くことはできません

于 2012-10-12T10:12:02.513 に答える