Функция закрытия файла
После завершения работы с файлом его необходимо закрыть. Для этого используется функция close.
Синтаксис:
close(int fd);
где fd - дескриптор открытого файла.
Ядро выполняет операцию закрытия, используя дескриптор файла и информацию из соответствующих записей в таблице файлов и таблице индексов. Если счетчик ссылок в записи таблицы файлов имеет значение, большее, чем 1, то это означает, что на запись в таблице файлов делают ссылку другие пользовательские дескрипторы (например, при разделенном доступе). В этом случае счетчик ссылок уменьшается на 1. Если счетчик ссылок в таблице файлов имеет значение, равное 1, операционная система освобождает запись в таблице и индекс в памяти, ранее выделенный системной функцией open.
Когда выполнение функции close завершается, запись в таблице пользовательских дескрипторов файла становится пустой. Попытки процесса использовать данный дескриптор заканчиваются ошибкой до тех пор, пока дескриптор не будет переназначен другому файлу в результате выполнения другой функции. Когда выполнение программного кода завершается, система проверяет наличие активных пользовательских дескрипторов файла данного сеанса и закрывает каждый из них. Таким образом, ни один сеанс выполнения кода не может оставить файл открытым после своего завершения.
Дата добавления: 2015-02-16; просмотров: 546;