位置:首页 > 高级语言 > C语言标准库 > freopen() - C语言库函数

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