Каждый раз, когда файл создается в пространстве ядра, объект файла структуры, который инстанцируют. Тип того файла не имеет значения. Для узлов устройства, стандартные текстовые файлы и т.д., создается объект файла структуры, когда файл открыт.
What I am wondering is when this object is destroyed. Is the struct file object for that file destroyed when we call close() system call for that file?
Расширенная информация:
struct file
структура данных ядра. Это не может использоваться в пространстве пользователя c программы. Ядро определяет объект от этого типа данных, чтобы смочь выполнить некоторые определенные операции файла. Этот объект создается в пространстве ядра, когда программа пространства пользователя называет системный вызов open()
.
https://github.com/torvalds/linux/blob/master/include/linux/fs.h
строка 901
Было бы полезно получить некоторую более определенную информацию для ответа правильно. В какой среде Вы видите этот объект файла структуры? Поиск объекта файла структуры в Google только указывает на этот вопрос.
Но обычно, дескриптор файла в подобных Unix операционных системах может быть создан с библиотечной функцией, открытой, который будет использовать системные вызовы ядра. Дескриптор файла может быть выпущен и освобожден с вызовом к библиотечной функции близко, которая будет, снова, использовать соответствующие системные вызовы и гарантирует, что никакие ресурсы не протекут.