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