Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" F "

fabs,fabsf,fabsl 

fclose 

fcloseall 

fdim,fdimf,fdiml 

fdopen 

fegetround 

feof 

ferror 

fesetround 

fgetc 

fgets 

fileno 

finite,finitef,finitel 

fflush 

floor,floorf,floorl 

fma,fmaf,fmal 

fmax,fmaxf,fmaxl 

fmin,fminf,fminl 

fmod,fmodf,fmodl 

fopen 

fpclassify 

fputc 

fputs 

freopen 

frexp,frexpf,frexpl 

fseek 

fseeko 

ftell 

ftello 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

freopen – замена файла связанного с потоком данных.

Синтаксис:

#include < stdio.h >
FILE *freopen (const char *filename, const char *mode, FILE *stream);

Аргументы:

filename – указатель на строку содержащую имя (включая путь) открываемого файла.

mode – указатель на строку содержащую режим доступа к открываемому файлу.

stream – указатель на управляющую таблицу открытого потока данных для которого необходимо заменить файл.

Возвращаемое значение:

Указатель на управляющую таблицу открытого потока данных (аргумент stream), если открытие файла произошло успешно.

NULL – если при открытии файла произошла ошибка. В переменную errno будет записан код ошибки.

Описание:

В первую очередь функция freopen закрывает файл, связанный с потоком stream, игнорируя ошибки, если они возникли при закрытии файла. Затем открывается файл, указанный аргументом filename с режимом доступа, указанным в аргументе mode. Открытый файл связывается с потоком данных указанным аргументом stream.

В основном функция freopen используется для замены файла связанного со стандартными потоками ввода-вывода (stdin, stdout или stderr) или с пользовательскими потоками данных.

Режимы доступа к файлу такие же как для функции fopen и указаны ниже:

r или rb – открытие файла для чтения. Если файла не существует, работа программы завершиться с ошибкой.

w или wb – создать файл для записи, если файла уже существует, он будет открыт, он все имеющиеся в файле данные будут уничтожены.

a или ab – открыть файл для записи в конец файла, если файла не существует, он будет создан.

r+ или rb+ или r+b – открыть файл для чтения и записи. Если файла не существует, работа программы завершиться с ошибкой.

w+ или wb+ или w+b – создать файл для чтения и записи, если файл уже существует, он будет открыт, но все имеющиеся в файле данные будут уничтожены.

a+ или ab+ или a+b - открыть файл для записи в конец файла, если файла не существует, он будет создан.

Пример:

В примере производится перенаправление данных выводимых в стандартный поток вывода (stdout) с консоли в файл test.txt.


#include < stdio.h >  //Для printf, freopen, fclose

int main (void)
{  
   // Переменная, в которую будет сохранен указатель
   // на управляющую таблицу стандартного  потока данных вывода
   FILE *mf;
         
   //Вывод строки в стандартный поток вывода (stdout). Строка
   //должна вывестись на консоль
   printf (“Проверка записи. Тест 1.”);

   // Замена файла связанного со стандартным потоком вывода stdout.
   // Теперь все данные потока stdout будут записываться в файл, а не
   // выводиться на экран.
   mf=freopen (“test.txt”,”w”,stdout);

   //Вывод строки в стандартный поток вывода (stdout). Строка
   //должна записаться в файл test.txt
   printf (“Проверка записи. Тест 2.”);

   // Закрытие стандартного потока вывода stdout
   fclose (mf);

   return 0;
} 

Результат:

Вывод на консоль:

Проверка записи. Тест 1.



Содержимое файла:



Проверка записи. Тест 2.



Смотри так же:

fclose
fcloseall
fdopen
fileno
fopen
freopen


Яндекс.Метрика

Рейтинг@Mail.ru