FILE *freopen(const char *fname, const char *mode, FILE *stream)
Прототип:
Описание:
Функция freopen() используется для связывания существующего потока с новым файлом. Новое имя файла указывается аргументом fname, режим доступа — аргументом mode, а поток, который надо связать с новым именем, — аргументом stream. В строке mode используется тот же формат, что и для функции fopen().
При вызове функция freopen() прежде всего пытается закрыть файл, который в данный момент связан с потоком stream. Однако если закрыть файл не удается, попытка связать поток с новым именем продолжается.
В случае успеха функция freopen() возвращает указатель на поток stream и NULL — в противном случае.
Основное назначение freopen() — перенаправлять системно-определенные файлы stdin, stdout и stderr в какой-нибудь другой файл.
Пример:
Приведенная здесь программа использует freopen() для перенаправления потока stdout в файл под названием OUT. Поскольку printf() выполняет запись в stdout, первое сообщение выводится на экран, а второе записывается в файл на диске. #include <stdio.h> #include <stdlib.h> int main(void) { FILE *fp; printf("This will display on the screen\n"); if ((fp=freopen("OUT", "w", stdout))==NULL) { printf("Cannot open file.\n"); exit(1); } printf ("This will be written to the file OUT"); fclose(fp); return 0; }
