Я намагаюся отримати всю картину з дескрипторами файлів. Скажіть, у мене є process1, який спочатку має такі дескриптори файлів:
_process1_
| |
| 0 stdin |
| 1 stdout |
| 2 stderr |
|__________|
Потім закриваю дескриптор файлу 1:
close(1);
Дескриптор 1 файлу переводить (вказує на) структуру FILE stdout у таблиці відкритих файлів ядра .
З кодом вище, дескриптор 1 файлу видаляється з таблиці процесу, яка стає:
_process1_
| |
| 0 stdin |
| 2 stderr |
|__________|
Але що відбувається в ядрі? Чи stdout
дістається структура FILE? Як це можливо, якщо stdout є спеціальним файлом (монітором) і, ймовірно, використовується іншими процесами? Що з структурами FILE, які є лише звичайними файлами (наприклад, .txt)? Що робити, якщо такий файл використовується іншим процесом?