функцией открытия потока, функцией fopen(), имеющую следующую конструкцию:
fopen(имя_файла, режим_открытия)
где имя_файла – это строка, содержащая «внешнее имя файла», т. е. имя под которым он хранится на внешнем устройстве.
Например, “С:\\ZZ\\ZARP.doc” и “A:\\KONF\\doclad.txt”.
В этом примере:
ZARP и doclad – это имена файлов,
doc и txt – это так называемое расширение, определяющее вид файла,
С:\\ZZ\\ и A:\\KONF\\ -это пути, указывающие месторасположенияфайлов.
Файл ZARP.doc находится на диске С в директории ZZ. Файл doclad.txt находится на диске А в директории KONF.
Таким образом,  внешнее имя файла может состоять из  пути, имени файла и расширения.  Расширение отделяется от имени точкой. Обратите внимание, что при указании пути пишется два знака «\\» вместо одного «\».
Это происходит из-за того, что в строке Си (вспомните, мы это уже рассматривали!) два знака '\\' воспринимаются как знак ‘\’, а один знак ‘\’ воспринимается как управляющий символ. В частном случае путь может не указываться и принимается по умолчанию (определяется текущей директорией).
Открытые на диске файлы после окончания их обработки рекомендуется закрыть. Для этого используется библиотечная функция:
int fclose ( указатель_на_поток );
Для нашего потока fp1 этот оператор может быть записан в следующем виде:
fclose (fp1);
Открытый файл можно открыть повторно (например, для изменения режима работы с ним) только после того, как файл будет закрыт с помощью функции fclose ().
Таким образом, структура типовой программы обработки файла на диске (не стандартного файла) может для потока fp1, может иметь следующий вид:
# include <stdio.h>
# include <conio.h>
void main()
                                       { FILE fp1;
                                           char imf[80];
// указатель на строковую костанту:
const char S[]= “ошибка при открытии потока fp1\n”;
printf(“Введите внешнее имя файла :\n”);
                                            gets (imf);
                                         fp1 = fopen ( imf, “обозначение_режима”);
if (fp1==NULL)
{
perror (S);
exit(0);
}
операторы_обработки_файла
close (fp1);
 }
Режимы открытия файлов в потоке табл.1
| № п/п | обозначение режима | содержание | дополнительные | 
| 1 | “w”, “wt”, “w+t” 
 | Новый текстовый файл открывается для записи | Если файл уже существовал, то предыдущее содержимое стирается, файл создается заново. Буквой t текстовый режим обозначается в некоторых компиляторах! | 
| 2 | “r”, “rt”, “r+t” | Существующий текстовый файл открывается для чтения | 
 | 
| 3 | “a”, “at”, “a+t” | Текстовый файл открывается (или создается, если файла нет) для добавления в него новых данных в конец файла | В отличие от режима 2 режим 3 позволяет открывать уже существующий файл, не уничтожая его предыдущей версии, и записывать новую информацию в продолжение файла. | 
| 4 | “w+”, “wt+” | Новый текстовый файл открывается для записи и последующих многократных изменений. Если файл уже существует. То предыдущее содержимое стирается. | Последующие после открытия файла запись и чтение из него допустимы в любом месте файла, в том числе запись разрешена и в конец файла. | 
| 5 | “r+”, “rt+” | Существующий текстовый файл открывается как для чтения, так и для записи в любом месте файла. | В этом режиме невозможна запись в конец файла, увеличение размера файла недопустимо. | 
| 6 | “a+”, “at+” | Текстовый файл открывается или создается (если файла нет) для записи и для чтения в любом месте. | В отличие от режима 4 можно открывать существующий файл и не уничтожать его содержимого. В отличие от режима 5 в режиме 6 можно вести запись в конец файла. | 
| 7 | “wb”, “w+b” | Новый двоичный файл открывается для записи | Если файл уже существовал, то предыдущее содержимое стирается, файл создается заново. | 
| 8 | “rb”, “r+b” | Существующий двоичный файл открывается для чтения | 
 | 
| 9 | “ab”, “a+b” | Двоичный файл открывается (или создается, если файла нет) для добавления в него новых данных в конец файла | В отличие от режима 8 режим 9 позволяет открывать уже существующий файл, не уничтожая его предыдущей версии, и записывать новую информацию в продолжение файла. | 
| 10 | “wb+” | Новый двоичный файл открывается для записи и последующих многократных изменений. Если файл уже существует. То предыдущее содержимое стирается. | Последующие после открытия файла запись и чтение из него допустимы в любом месте файла, в том числе запись разрешена и в конец файла. | 
| 11 | “rb+” | Существующий двоичный файл открывается как для чтения, так и для записи в любом месте файла. | В этом режиме невозможна запись в конец файла, увеличение размера файла недопустимо. | 
| 12 | “ab+” | Двоичный файл открывается или создается (если файла нет) для записи и для чтения в любом месте. | В отличие от режима 10 можно открывать существующий файл и не уничтожать его содержимого. В отличие от режима 11 в режиме 12 можно вести запись в конец файла. | 

 
  
                                    	
                        