ファイル記述子を使用した後は閉じる必要がありますか?

ファイル記述子を使用した後は閉じる必要がありますか?

私はプロジェクトを進めています。ところで、ソースコードで閉じられていないファイル記述子が多いことがわかりました。一見するとこの姿が良く見えません。 Google を試してみると、誰かがこの fd の後にバッファがある場合は閉じないでください。そうでなければ悪いことが起こると言った。私はこれについてよくわかりません。だから誰でもアドバイスできますか?

ファイル記述子を使用した後は閉じる必要がありますか?ファイル記述子の使用に関する規則はありますか?

ベストアンサー1

はい、関連リソースを解放し、制限に達するのを防ぐために、不要になったらすぐにファイル記述子を閉じるのが最善です。

一部のファイル記述子は特定のAPIを介して開くことができ、それを閉じるときはシステムコールを使用する代わりに同じAPIを使用する必要がありますclose(2)

これらの一般的なAPIは、C言語のstdio(all fopen、、、printf... fputs)です。たとえば、ファイルfopen(3)(ファイル記述子ではなくデータ型を返しますが、その下にfdを生成する)ファイルを開く場合は、stdioでfdを閉じるのではなく(すべてのバッファをフラッシュする)FILE*ifを閉じる必要があります。 。fclose(thatFILE)close(fileno(thatFILE))

おすすめ記事