Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Файлы.docx
Скачиваний:
1
Добавлен:
05.09.2019
Размер:
32.98 Кб
Скачать

Коды, устанавливающие режимы доступа к открываемым файлам

Символ

Описание

R

Файл открывается только для чтения; если такого файла нет, то возникает ошибка

W

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

A

Файл открывается для добавления в его конец новой информации

r+

Файл открывается для редактирования данных; возможны и запись, и чтение информации

w+

То же, что и для r+

a+

То же, что и для a, только запись можно выполнять в любое место файла; доступно и чтение файла

T

Файл открывается в текстовом режиме; указывается поле r, w, a, r+, w+, a+

B

Файл открывается в двоичном режиме; указывается поле r, w, a, r+, w+, a+

Текстовый режим отличается от двоичного тем, что при открытии файла как текстового пара символов «перевод строки», «возврат каретки» заменяется на один символ: «перевод строки» для всех функций записи данных в файл, а для всех функций вывода символ «перевод строки» теперь заменяется на два символа: «перевод строки», «возврат каретки».

По умолчанию файл открывается в текстовом режиме.

После работы с файлом доступ к нему необходимо закрыть. Это выполняет функция fclose(указатель_на_файл). Например, из предыдущего примера файл закрывается так: fclose (f);

Для закрытия нескольких файлов введена функция, объявленная следующим образом: Void fcloseall(Void);

Если требуется изменить режим доступа к файлу, то для этого сначала необходимо закрыть данный файл, а затем вновь его открыть, но с другими правами доступа. Для этого используют стандартную функцию freopen, описанную в stdio.h как

FILE* freopen (char filename, char *mode, FILE *stream);

Эта функция сначала закрывает файл, связанный с потоком stream (как это делает функция fopen), а затем открывает файл с именем filename и правами доступа mode, записывая информацию об этом файле в переменную stream.

В алгоритмическом языке С имеется возможность работы с временными файлами, т.е. с такими, которые нужны только в процессе работы программы и которые надо удалить после выполнения части вычислений. В этом случае используют функцию tmpfile со следующим объявлением:

FILE* tmpfile (void);

Функция tmpfile создает на диске временный файл с правами доступа «w+b» и возвращает указатель на управляющий блок по типу атрибута FILE. После завершения работы программы или после закрытия временного файла он автоматически удаляется.

Все действия по чтению/записи данных в файл можно разделить на три группы:

- операции посимвольного ввода-вывода;

- операции построчного ввода-вывода;

- операции ввода-вывода по блокам.

Ниже приведены основные функции, применяемые в каждой из указанных трех групп операций.

Посимвольный ввод-вывод

В операциях посимвольного ввода-вывода происходит прием одного символа из файла или передача одного символа в файл.

Функция

Действие функции

int fgetc(FILE *fp)

Читает и возвращает символ из открытого файла

int fgetchar(void)

Читает и возвращает символ из файла stdin

int ungetc(int ch, FILE *fp)

Возвращает символ ch в файл; следующая опера­ция чтения символа из файла вернет этот символ

int fputc(int ch, FILE *fp)

Записывает в файл код ch символа