Описанный указатель необходимо связать с конкретным файлом на диске (или устройством ввода-вывода) в момент открытия файла функцией fopen () следующим образом:
fp = fopen (“путь_к_файлу”, ” тип_доступа”);
где путь_к_файлу – указатель на строку символов (литерал), задающую спецификацию открытого файла. При этом, задавая путь_к_файлу с использованием символа ‘\’, его необходимо удваивать для того, чтобы он не воспринимался компилятором как элемент символа управления, например, “C:\\$STUDENT\\GR_1906\\myfile1.dat”;
тип_доступа – указатель на строку символов, задающую режим открытия файла:
r – существующий файл открывается только для чтения (read);
w – открывается существующий файл (с уничтожением его содержимого) или создается новый файл для записи (write);
a – существующий файл открывается для пополнения конца файла (append – дополнение)
r+ – существующий файл открывается для чтения и записи;
w+ – создается файл для чтения и записи;
a+ – файл открывается для пополнения конца файла и доступен для чтения и записи;
|
|
t – файл открывается в текстовом режиме (text), этот режим принят по умолчанию;
b – файл открывается в двоичном режиме (binary).
В текстовом режиме при чтении информации из файла пара символов CR LF (возврат каретки, перевод строки) преобразуется в один символ “\n”, а при записи новой строки преобразуется в пару символов CR LF.
При выполнении файлового ввода-вывода в двоичном режиме никакого преобразования символов не происходит.
Функция fopen () возвращает указатель (адрес) на успешно открытый файл или NULL-указатель при невозможности открыть файл. Проверку открытия файла должен выполнять сам программист.
После завершения всех операций файлового доступа файл следует закрыть функцией вида
fclose (указатель файла);
Пример. Схема открытия и закрытия файла может быть следующей.
#include<stdio.h>
void main ()
{ char *path= “C:\\$student\\GR_1908\\test.dat”; /* путь к файлу */
FILE *myfile; /* указатель файла */
/* Проверка открытия файла: */
if ((myfile = fopen (path,”w+”)) == null);
{ printf (“Ошибка при открытии файла % s “, path);
exit; /* аварийный выход из программы */
}
/* Работа с файлом myfile */
fclose (myfile); /* закрытие файла */
}
В программе может быть открыто несколько файлов в эависимости от установок операционной системы. Перед окончанием работы программы все открытые программистом файлы можно закрыть одной функцией
fcloseall();