Skip to content
Latchkey

File Descriptor Tableとは?

file descriptor tableは、各プロセスが保持するkernel構造で、プロセスが使う小さな整数であるfile descriptorを、その基盤にある開いたファイル、pipe、socketに結びつけます。open呼び出しごとにエントリが追加され、close呼び出しごとに削除され、tableにはサイズの上限があります。standard input、output、errorは慣習によりdescriptorのゼロ、1、2を占めます。

なぜ重要か

長時間動作するCIプロセスがdescriptorを閉じずにリークすると、やがて上限に達しtoo-many-open-filesエラーで失敗します。tableがプロセスごとで上限があると知っていれば、こうした失敗やリダイレクトの仕組みを説明できます。

関連ガイド