Функција фреопен () у Ц ++-у покушава да отвори нову датотеку помоћу тока датотека који је повезан са другом отвореном датотеком.
Функција фреопен () је дефинисана у датотеци заглавља.
прототип фреопен ()
ФИЛЕ * фреопен (цонст цхар * назив датотеке, цонст цхар * режим, ФИЛЕ * стреам);
Функција фреопен прво покушава да затвори датотеку отворену помоћу тока. Након што се датотека затвори, покушава да отвори име датотеке назначено аргументом име датотеке (ако није нулл) у режиму наведеном у режиму аргумента. Коначно, повезује датотеку са током протока датотека.
Ако је назив датотеке нулти показивач, функција фреопен () покушава поново отворити датотеку која је већ придружена току.
параметри фреопен ()
- име датотеке: Нова датотека за отварање.
 - режим: Режим којим желите да отворите датотеку. Различите врсте режима приступа датотекама су следеће:
 
| Режим приступа датотекама | Тумачење | Ако датотека постоји | Ако датотека не постоји | 
|---|---|---|---|
| "р" | Отвара датотеку у режиму читања | Читајте од почетка | Грешка | 
| "в" | Отвара датотеку у режиму писања | Избришите сав садржај | Направите нову датотеку | 
| "а" | Отвара датотеку у режиму додавања | Почните да пишете од краја | Направите нову датотеку | 
| "р +" | Отвара датотеку у режиму читања и писања | Читајте од почетка | Грешка | 
| "в +" | Отвара датотеку у режиму читања и писања | Избришите сав садржај | Направите нову датотеку | 
| "а +" | Отвара датотеку у режиму читања и писања | Почните да пишете од краја | Направите нову датотеку | 
- стреам: ток датотеке којем треба придружити име датотеке.
 
фреопен () Повратна вредност
Функција фреопен () враћа:
- ток успеха.
 - НУЛЛ у случају неуспеха.
 
Пример: Како функционише функција фреопен ()?
 #include #include int main() ( FILE* fp = fopen("test1.txt","w"); fprintf(fp,"%s","This is written to test1.txt"); if (freopen("test2.txt","w",fp)) fprintf(fp,"%s","This is written to test2.txt"); else ( printf("freopen failed"); exit(1); ) fclose(fp); return 0; )
Када покренете програм:
Следеће ће бити написано на тест1.ткт: Ово је написано на тест1.ткт Следеће ће бити написано на тест2.ткт: Ово је написано на тест2.ткт








