C语言 <stdio.h> freopen() 函数
-
描述
C库函数FILE *freopen(const char *filename, const char *mode, FILE *stream)将新文件名与给定的打开流相关联,同时关闭流中的旧文件。 -
声明
以下是freopen()函数的声明。FILE *freopen(const char *filename, const char *mode, FILE *stream)
参数- filename - 这是C字符串,包含要打开的文件的名称。
- mode - 这是包含文件访问模式的C字符串。它包括-
- “r” - 打开文件进行读取。该文件必须存在。
- “w” - 创建一个空文件进行写入。如果已经存在同名文件,则其内容将被删除,并且该文件将被视为新的空文件。
- “a” - 追加到文件。写入操作,将数据追加到文件末尾。如果文件不存在,则创建该文件。
- “r+” - 打开一个文件以更新读取和写入。该文件必须存在。
- “w+” - 创建一个用于读取和写入的空文件。
- “a+” - 打开文件进行读取和追加。
- stream - 这是指向FILE对象的指针,该对象标识要重新打开的流。
-
返回值
如果成功重新打开了文件,则该函数将返回指向标识流的对象的指针,否则将返回空指针。示例以下示例显示freopen()函数的用法-#include <stdio.h> #include <string.h> int main () { FILE *fp; printf("This text is redirected to stdout\n"); fp = freopen("file.txt", "w+", stdout); printf("This text is redirected to file.txt\n"); fclose(fp); return(0); }
让我们编译并运行上述程序,该程序将在STDOUT发送以下行,因为最初我们没有打开stdout-This text is redirected to file.txt