ВУЗ:
Составители:
Рубрика:
изводится побайтно, но возможно работать с данными различных размеров и форматов посредством ор-
ганизации буферизованного потока. Таким образом, можно сказать, что поток – это файл вместе со
средствами буферизации. Для работы с потоком предусмотрен ряд функций, описанных в заголовочном
файле 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+ Открытие файла для обновления. Файл досту-
пен для чтения и записи в рамках существую-
щих границ. Информация, записанная вне гра-
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »
