Основы программирования для автоматизированного проектирования и решения творческих задач - 30 стр.

UptoLike

Составители: 

изводится побайтно, но возможно работать с данными различных размеров и форматов посредством ор-
ганизации буферизованного потока. Таким образом, можно сказать, что потокэто файл вместе со
средствами буферизации. Для работы с потоком предусмотрен ряд функций, описанных в заголовочном
файле stdio.h.
Запущенная на выполнение программа на языке С автоматически связывается с пятью потоками:
1) stdinстандартный поток для ввода данных;
2) stdoutстандартный поток для вывода данных;
3) stderrстандартный поток для сообщений об ошибках;
4) stdauxасинхронный порт;
5) stdprnпорт принтера.
Потоки stdaux и stdprn могут быть не установлены.
Все остальные потоки необходимо явно открывать в процессе работы программы. В исполняемой
программе поток связывается со структурой типа FILE, определенной в файле stdio.h. В структуре
FILE содержатся компоненты, при помощи которых осуществляется работа с потоком. При открытии
потока в программу возвращается указатель на поток, соответствующий указателю на объект типа
FILE. Указатель, связывающий исполняемую программу с файлом, должен быть объявлен в виде
FILE *имя_потока;
Связать указатель с файлом для ввода-вывода данных через поток можно с помощью функции,
имеющей следующий описатель:
FILE *fopen(const char *filename, const char *mode);
здесь filenameуказатель на строку со спецификацией открываемого файла; modeуказатель на строку
символов, описывающую режим работы с файлом.
Если файл открыть не удалось, функция fopen возвращает значение NULL.
Режим работы с файлом во-первых определяет что произойдет с файлом в момент его открытия и
какие особенности будет носить работа с ним. Возможные варианты открытия потока в программе при-
ведены в табл. 7.
7 Варианты открытия потоков
Описа-
тель
Режим работы
r Файл открывается в режиме чтения. Он дол-
жен существовать. Иначе возвращается значе-
ние NULL
w Файл открывается для записи. Если указанный
файл существует, то его содержимое стирает-
ся. Если файл не существует, то он создается в
указанной директории.
В случае неудачи возвращает значение NULL
a Режим дополнения. Файл открывается для за-
писи, но его содержимое не стирается, а указа-
тель устанавливается на байт с кодом "конец
файла". Если файл не существовал, то он соз-
дается. В случае неудачи возвращает значение
NULL
r+ Открытие файла для обновления. Файл досту-
пен для чтения и записи в рамках существую-
щих границ. Информация, записанная вне гра-