Предопределенные указатели потоков.
С началом выполнения C-программы автоматически открывается пять потоков. Их указатели имеют предопределенные имена и представляют константы типа указателя на структуру FILE.
stdin - стандартный поток ввода;
stdout - стандартный поток вывода;
stdprn - стандартный поток вывода на печать;
stdaux - стандартный дополнительный поток;
stderr - стандартный вывод сообщений об ошибке.
Имена этих потоков можно использовать везде, где допускаются имена потоков без предварительного открытия соответствующего потока.
Имеется целый ряд специальных функций работы со стандартными потоками ввода-вывода (в основном stdin и stdout). Мы их частично рассматривали (например, printf).
Поскольку указатели стандартных потоков являются константами, им нельзя присваивать значений. Но любой стандартный поток может прерываться с помощью функции freopen.
FILE *freopen (const char *fn, const char *mode, FILE *stream);
stream - указатель существующего потока, в том числе стандартного.
Функция возвращает stream в случае успеха, иначе - NULL.
Пример:
if (fopen ("d:\\a.std", "w", stdout) == NULL)
{ ... обработка ошибки открытия ... }
/* переназначение стандартного вывода на диск */
if (freopen ("CON", "w", stdout) == NULL)
{ ... обработка ошибки переназначения ... }
/* возврат стандартного вывода на консоль */
Дата добавления: 2014-12-18; просмотров: 685;