freopen() - C语言库函数
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字符串,其中包含文件访问模式。它包括:
mode | 描述 |
---|---|
"r" | 打开一个文件进行读取。该文件必须存在。 |
"w" | 创建一个空的书面文件。如果已经存在具有相同名称的文件,其内容被删除的文件被认为是一个新的空文件。 |
"a" | 附加到文件中。写入操作的数据追加在文件末尾的。该文件被创建,如果它不存在。 |
"r+" | 打开更新文件阅读和写作。该文件必须存在。 |
"w+" | 创建一个空文件,读取和写入。 |
"a+" | 打开一个文件读取和追加。 |
-
stream -- 这是一个文件对象的指针标识重新打开流。
返回值
如果该文件被重新打开成功,则函数返回一个指针,指向一个对象识别流,否则返回空指针。
例子
下面的例子演示了如何使用freopen()函数。
#include <stdio.h> int main () { FILE *fp; printf("This text is redirected to stdout "); fp = freopen("file.txt", "w+", stdout); printf("This text is redirected to file.txt "); fclose(fp); return(0); }
让我们编译和运行上面的程序,这将发送以下行标准输出,因为最初我们并没有打开的标准输出:
This text is redirected to stdout
freopen()调用后,它关联STDOUT文件file.txt,所以我们在STDOUT 写进入file.txt。因此,文件file.txt将有以下内容。
This text is redirected to file.txt