ファイル記述子で全体像を取得しようとしています。最初にこれらのファイル記述子を持つprocess1があるとします。
_process1_
| |
| 0 stdin |
| 1 stdout |
| 2 stderr |
|__________|
次に、ファイル記述子1を閉じます。
close(1);
ファイル記述子1 は、カーネルのOpen Files Tableのstdout FILE構造体に変換(ポイント)します。
上記のコードでは、ファイル記述子1がプロセスのテーブルから削除され、次のようになります。
_process1_
| |
| 0 stdin |
| 2 stderr |
|__________|
しかし、カーネルではどうなりますか?んstdout
FILE構造体は、割り当て解除を取得しますか?stdoutが特別なファイル(モニター)であり、おそらく他のプロセスで使用されている場合、それはどのように可能ですか?単なる通常のファイル(たとえば.txt)であるFILE構造についてはどうですか?そのようなファイルが他のプロセスで使用されている場合はどうなりますか?