unix / linuxはすべての無料のファイル記述子のリストを保持しますか?

unix / linuxはすべての無料のファイル記述子のリストを保持しますか?

私はRobert Loveの「Linux Systemsプログラミング」を読んで、ファイル記述子の概念を理解しようとしています。

彼が言及した

ファイル記述子は0から始まり、この最大値より小さい1まで上がります。デフォルトでは、最大値は1,024です。

たとえば、ファイル記述子500と501をそれぞれ使用して2つのファイルを開きます。

これで、ファイル記述子が500のファイルが閉じられると、次に割り当てられるfdが502になるという意味ですか? 500個再利用可能ですか?もしそうなら、カーネルは閉じたすべてのファイル記述子をどのように保持しますか?

ベストアンサー1

Linux は、Unix ファミリシステムと同様に、カーネルが管理するファイルアロケータテーブルを使用します。 open はディスクリプタを生成し、最下位の閉じたファイルディスクリプタを再利用するか、新しいエントリを作成します。 close テーブルで閉じる項目を設定します。

おすすめ記事