file_struct データ構造体は、プロセスがオープンしたファイルについて 記述するものである。 定義はinclude/linux/sched.hで定義されている。
struct files_struct { int count; fd_set close_on_exec; fd_set open_fds; struct file * fd[NR_OPEN]; };
プロセスがこのfiles_struct構造体を参照していて、file構造体がfcheck_files(files, fd)得られたなら、このfile構造体は、すでにopenシステムコールで、その参照カウンタがインクリメントされているため、fget_light()で取得したfile構造体は、あえて参照カウンターをインクリメントする必要がない
プロセス管理を行うtask_structでも情報は保持している
struct task_struct { struct files_struct* files; //ファイルディスクリプタ struct signal_struct* sig; //シグナルハンドラ struct mm_struct* mm; //メモリ管理モジュール long stat //プロセス状態 task_struct* next_run, prev_run; //RUNキュー接続用 long priority; //ベースプライオリティ long counter; //変動プライオリティ char comm[]; //コマンド名 struct thread_struct tss; //コンテキストセーブ域 };