Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_2_изд_испр.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
2.27 Mб
Скачать

13.2. Описание файла

Правила описания файлов зависят от операционной системы (ОС), однако традиционно это описание имеет вид:

<имя_файла>.< расширение>.

Пример.

квартплата.xls

В ОС MS DOS длина имени файла не должна превышать 8 символов и это имя не допускает спецсимволы и русские буквы. Длина расширения не более 3 символов. В ОС Windows длина имени файла меньше или равна 255 символов и русские символы допустимы. Расширение часто называют типом файла, поскольку многие программы, их создающие, имеют расширения по умолчанию.

К ним относятся:

- doc – текстовый процессор MS Word;

- xls – табличный процессор MS Excel;

- c – исходный модуль языка C;

- cpp – исходный модуль языка C++;

- bas – общий модуль языка Basic;

- frm – файл экранной формы программы на Basic;

- obj – объектный файл любого транслятора;

- exe – выполняемый файл;

- txt – текстовый файл, подготовленный редактором NotePad.

Заметим, что пользователь имеет возможность дать этим типам другое расширение. В ОС MS DOS трансляторы с языков C и C++ сохраняют предыдущую версию исходного текста программы в файле с расширением bak.

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

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

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

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

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

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

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

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

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

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

13.4. Средства языка с

Прототипы всех функций обмена данных хранятся в файле stdio.h.

13.4.1. Открытие и закрытие файла

Прототип: FILE *fopen(char *a, char *b); - открытие файла.

Параметры:

- a – имя файла (полный путь);

- b – способ обработки:

- r – только чтение;

- w – только запись;

- a – только добавление в конец существующего файла.

Параметры способа обработки r и w могут дополняться символом +, который означает также и возможность изменения содержания файла.

Пример. w+ - создать файл и затем изменять.

Возвращаемое значение: указатель на файл (при нормальном открытии) | NULL (при ошибке).

Пример.

FILE *p; // Указатель на файл. Должен быть описан в программе

..................................

p=fopen("u:\c_lections\examples\out.dat", "r");

Прототип: int fclose(FILE *); - закрытие файла.

Возвращаемое значение: 0 - нормальное закрытие | EOF - ошибка.