Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Freopen

CuBook05

Функция

Связывает с потоком новый файл.
 
Синтаксис

#include <stdio.h>
FILE* freopen(char* filename, char* mode, FILE* stream);
 
Прототип

stdio.h
 
Описание

Функция freopen замещает указанным файлом открытый поток stream. Функция freopen закрывает файл, связанный со stream, независимо от откраваемого файла. Ее можно использовать для изменения потоков, связанных с stdin, stdout или stderr.
Строка mode, используемая в функции freopen, может принимать следующие значения:
r - открытие файла только для чтения;
w - создание файла для записи;
а - присоединение; открытие для записи в конец файла или создание для записи, если файл не существует;
r+ - открытие существующего файла для обновления (чтения и записи);
w+ - создание нового файла для изменения;
a+ - открытие для присоединения; открытие (или создание, если файл не существует) для обновления в конец файла.
Если данный файл открывается или создается в текстовом режиме, вы можете приписать символ t к значению параметра mode (rt, w+t и т.д.); аналогично, для спецификации бинарного режима вы можете к значению параметра mode добавить символ b (wb, a+b, и т.д.).
Если в параметре mode отсутствуют символы t или b, режим будет определяться глобальной переменной _fmode. Если переменна _fmode имеет значение O_BINARY, файлы будут открываться в бинарном режиме, иначе, если _fmode имеет значение O_TEXT, файлы открываются в текстовом режиме. Данные константы O_... определены в файле fcntl.h.
При открытии файла в режиме обновления (UPDATE), над результирующим потоком stream могут быть выполнены как операции ввода, так и вывода. Тем не менее вывод не может следовать непосредственно за вводом без вмешательства функций fseek или rewind, а также ввод без применения функций fseek, rewind не может непосредственно следовать за выводом или вводом, который встречает конец файла (EOF).
 
Возвращаемое значение

При успешном завершении, freopen возвращает указатель на открытый поток stream. В случае ошибки, функция возвращает ноль (NULL).
 
Переносимость

Функция freopen поддерживается на системах UNIX и совместима со стандартом ANSI C.
 
Пример

#include<stdio.h>

int main(void)
{
if(freopen("OUTPUT.FIL","w",stdout) == NULL) // перенаправить стандартный вывод в файл
fprintf(stderr,"Ошибка перенаправления потока\n");
printf("этот вывод будет осуществляться в файл\n"); // этот вывод будет осуществляться в файл
close(stdout); // закрыть стандартный вывод
return 0;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий