Файл – это организованный набор данных, расположенных на внешнем носителе. В файлах размещаются данные, предназначенные для длительного хранения. Каждому файлу присваивается используемое при обращении к нему уникальное имя. В языке С отсутствуют операторы (инструкции) для работ с файлами. Все необходимые действия выполняются через функции, включенные в стандартную библиотеку. Они позволяют работать с различными устройствами, такими как принтер, диски, коммуникационные каналы и др. Эти устройства сильно отличаются друг от друга. Однако файловая система позволяет устройство сильно отличаться друг от друга. Однако файловая система позволяет преобразовывать их в единое логическое устройство называемое потоком.
Существует два типа потоков:
1. Текстовые
2. Двоичные
Прежде чем читать и записывать информацию в файл, он должен быть открыт. Это можно сделать с помощью библиотечной функции fopen. Она берет внешнее представление файла (например:C:MYFILE.TXT) и связывает его с внутренним логическим именем, которое используется далее в программах. Логическое имя – это указатель на требуемый файл. Его необходимо объявлять. Делается это например так:
FILE * lst;
Здесь FILE – стандартное имя типа, записанное в стандартном определении stdio.h.
lst – это указатель на файл. Обращение к функции fopen в программе осуществляется так:
lst = fopen (спецификация файла, вид использования файла);
Спецификация файла: устройство имя расширение,например:
С: MYFILE TXT
1) Вид использования файла может быть r - означает открыть существующий файл для чтения.
2) w - создать новый файл для записи. (Если файл с указанным именем существует, то он будет переписан).
3) а - дополнить файл (открыть существующий файл для записи информации, начиная с конца файла, либо создать файл, если он не существует).
4) rb - открыть двоичный файл для чтения.
5) wb - создать двоичный файл для записи.
6) аb - дополнить двоичный файл.
7) rt - открыть текстовый файл для чтения.
8) wt - создать текстовый файл для записи.
9) аt - дополнить текстовый файл.
10)r+- открыть существующий файл для записи и чтения.
11) w+ - создать новый файл для записи и чтения.
12) а+ - дополнить или создать файл с возможностью записи и чтения.
13) r+b- открыть двоичный файл для записи и чтения.
14) w+b- создать двоичный файл для записи и чтения.
15) а+b - дополнить двоичный файл с возможностью записи и чтения.
Если режим t или b не задан, то он определяется значением глобальной переменной - fmode.
Если значение - fmode = a BINARY, то файлы открываются в двоичном режиме, а если - fmode = a TEXT - в текстовом режиме. Если константы а BINARY и a TEXT определены в файле fcnfl.n. Строки вида r+в можно записывать в виде rв+. Если в результате обращения h функции fopen возникает ошибка, то она возвращает указатель на константу NULL. Для работы с файлом используются библиотечные функции fprintf, fscanf, fgets, fputs. После окончания работы с файлом, он должен быть закрыт. Делается это с помощью библиотечной функции fclose.
Например: