Открытие и закрытие файлов

Перед началом обмена данными с файлом выполняются операции :

- проверка наличия файла с данным именем при чтении;

- наличие свободного пространства на диске при создании файла;

- установка указателя файла на начало (позиционирование).

Этот процесс называют открытием файла. Как было показано выше в разделе 12, для обмена данными используются 3 стандартных потока. При открытии файла ОС присоединяет к нему свой индивидуальный поток (канал) передачи данных, который характеризуется целым числом, называемым дескриптором файла. В языке C функция открытия файла возвращает не дескриптор, а указатель на тип FILE, который представляет собой структуру, описанную в заголовочном файле stdio.h и содержащую в качестве элемента дескриптор файла. С каждым открытым потоком связан выделяемый ОС буфер передачи данных.

Процесс отсоединения файла от программы после окончания операций с ним называется закрытием файла. При этом освобождаются ресурсы (в основном, память). Файл закрывается указанием программиста либо по окончании работы программы. Рекомендуется закрывать файлы прямым указанием по следующим причинам:

- возможна случайная порча открытого файла из-за программных ошибок;

- часто требуется повторное открытие того же файла с другим способом обработки; например, файл сначала был открыт для записи в него информации, а в последующих фрагментах программы необходимо читать эти данные;

- при аварийном завершении программы информация, хранимая в сис-темном буфере пропадает.