C 参考手册
- C 语言
 - C 关键词
 - 预处理器
 - C 标准库头文件
 - 类型支持
 - 程序支持工具
 - 变参数函数
 - 错误处理
 - 动态内存管理
 - 日期和时间工具
 - 字符串库
 - 算法
 - 数值
 - 文件输入/输出
 - gets, gets_s
 - printf, fprintf, sprintf, snprintf, printf_s, fprintf_s, sprintf_s, snprintf_s
 - fopen, fopen_s
 - fputc, putc
 - fputs
 - getchar
 - putchar
 - FILE
 - fpos_t
 - stdin, stdout, stderr
 - freopen, freopen_s
 - fwide
 - setbuf
 - setvbuf
 - fclose
 - fflush
 - fread
 - fwrite
 - fgetc, getc
 - fgets
 - puts
 - ungetc
 - fgetwc
 - fgetws
 - fputwc, putwc
 - fputws
 - getwchar
 - putwchar
 - ungetwc
 - scanf, fscanf, sscanf, scanf_s, fscanf_s, sscanf_s
 - wscanf, fwscanf, swscanf, wscanf_s, fwscanf_s, swscanf_s
 - vscanf, vfscanf, vsscanf, vscanf_s, vfscanf_s, vsscanf_s
 - vwscanf, vfwscanf, vswscanf, vwscanf_s, vfwscanf_s, vswscanf_s
 - wprintf, fwprintf, swprintf, wprintf_s, fwprintf_s, swprintf_s, snwprintf_s
 - vprintf, vfprintf, vsprintf, vsnprintf, vprintf_s, vfprintf_s, vsprintf_s, vsnprintf_s
 - vwprintf, vfwprintf, vswprintf, vwprintf_s, vfwprintf_s, vswprintf_s, vsnwprintf_s
 - ftell
 - fgetpos
 - fseek
 - fsetpos
 - rewind
 - clearerr
 - feof
 - ferror
 - perror
 - remove
 - rename
 - tmpfile, tmpfile_s
 - tmpnam, tmpnam_s
 - 本地化支持
 - 原子操作库
 - 线程支持库
 - 实验性 C 标准库
 - 有用的资源
 - 符号索引
 - 注释
 
freopen, freopen_s
|   定义于头文件  <stdio.h>
  | 
||
| (1) | ||
| (C99 前) | ||
| (C99 起) | ||
| (2) | (C11 起) | |
1) 首先,试图关闭与 
stream 关联的文件,忽略任何错误。然后,若 filename 非空,则试图用 mode 打开 filename 所指定的文件,如同用 fopen ,然后将该文件与 stream 所指向的文件流关联。若 filename 为空指针,则函数试图重打开已与 stream 关联的文件(此情况下是否允许模式改变是实现定义的)。2) 同 (1) ,除了以 fopen_s 中的方式处理 
mode ,并将指向文件流的指针写入 newstreamptr ,还在运行时检测下列错误,并调用当前安装的制约处理函数:
-  
newstreamptr是空指针 -  
stream是空指针 -  
mode是空指针 
-  
 - 同所有边界检查函数, 
freopen_s仅若实现定义了 __STDC_LIB_EXT1__ ,且用户在包含<stdio.h>前定义 __STDC_WANT_LIB_EXT1__ 为整数常量 1 才保证可用。 
参数
| filename | - | 要关联到文件流的文件名 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| mode | - |   确定文件访问模式的空终止字符串
  | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stream | - | 要修改的文件流 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| newstreamptr | - | 指向函数存储结果所用指针的指针(输出参数) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回值
1) 成功时为 
stream 值的副本,失败时为空指针。2) 成功时为零(并将 
stream 值的副本写入 *newstreamptr ),失败时为非零(并写入空指针到 *newstreamptr ,除非 newstreamptr 自身为空指针)。注意
freopen 是一旦由 I/O 操作或 fwide 建立面向后,改变文件流窄/宽面向的唯一方式。
示例
下列代码重定向 stdout 到文件。
运行此代码
输出:
stdout is printed to console
引用
- C11 standard (ISO/IEC 9899:2011):
 
- 7.21.5.4 The freopen function (p: 307)
 
- K.3.5.2.2 The freopen_s function (p: 590)
 
- C99 standard (ISO/IEC 9899:1999):
 
- 7.19.5.4 The freopen function (p: 272-273)
 
- C89/C90 standard (ISO/IEC 9899:1990):
 
- 4.9.5.4 The freopen function
 
参阅
|    (C11)  | 
   打开文件   (函数)  | 
|    关闭文件   (函数)  |