Прежде чем начать работать с потоком, его необходимо инициализировать, т.е. открыть.


FILE *fp;


Поток будет представлен в программе структурой предопределенного типа FILE.

Указатель на поток приобретет значение в результате выполнения функции :


fp=fopen (имя_файла, режим_открытия);


Параметры имя_файла, режим_открытия можно задавать непосредственно в виде строковых констант, например:


fp=fopen (data.txt ”, “w”);


data.txt – это имя файла на диске, связанного с потоком.


w – обозначение одного из режимов работы с файлом.


Существуют следующие режимы открытия файла:


w” – новый файл открывается для записи. Если он уже существовал, то предыдущее содержимое стирается;

r” – существующий файл открывается только для чтения.

a” – файл открывается для добавления в него новой порции информации. Если файл не существовал, то он создается.

w+” – новый файл открывается для записи и последующих многократных исправлений. Существующий файл затирается. Последующее редактирование файла допускается в любом месте файла, в том числе и в конце, т.е. файл может увеличиваться (расти).

r+” – существующий файл открывается как для чтения, так и для записи в любом месте файла, за исключением его конца. Т.е. увеличение файла недопустимо.

a+” – файл открывается или создается и становится доступным для изменений, т.е. для записи и чтения в любом месте.


Поток можно открыть в текстовом или двоичном режиме.


По умолчанию поток открывается в текстовом режиме. В некоторых компиляторах для задания текстового режима к режиму работы необходимо добавить t. Например, at или w+t.

В текстовом режиме при прочтении из потока комбинации управляющих символов, обозначающих «возврат каретки» (CARRIAGE RETURN, код 13) и «перевод строки» (LINE FEED, код 10), происходит их преобразование в один символ новой строки ‘\n’ (код 10, совпадает с LF). При записи в поток происходит обратное преобразование.


Если же в файле хранится не текстовая информация, то такие преобразования не нужны и даже могут оказаться вредными. Бинарный файл следует открывать в бинарном режиме, который обозначается буквой b. Например, rb или w+b.


При выполнении функции fopen происходит выделение динамической памяти. Указатель на поток будет равным NULL только если при открытии потока произошли ошибки.