freopen : freopen « stdio.h « C Tutorial






ItemValue
Header filestdio.h
DeclarationFILE *freopen(const char *fname, const char *mode, FILE *stream);
Functionassociates an existing stream with a different file.
Returnreturns a pointer to stream on success or a null pointer on failure.


Legal Values for the mode Parameter

ModeMeaning
"r"Open text file for reading
"w"Create a text file for writing
"a"Append to text file
"rb"Open binary file for reading
"wb"Create binary file for writing
"ab"Append to a binary file
"r+"Open text file for read/write
"w+"Create text file for read/write
"a+"Open text file for read/write
"rb+" or "r+b"Open binary file for read/write
"wb+" or "w+b"Create binary file for read/write
"ab+" or "a+b"Open binary file for read/write


You can use freopen() to redirect the system-defined files stdin, stdout, and stderr to some other file.

Use freopen() to redirect the stream stdout to the file called OUT.

#include <stdio.h>
  #include <stdlib.h>

  int main(void)
  {
    FILE *fp;

    printf("This will display on the screen.\n");

    if((fp=freopen("OUT", "w" ,stdout))==NULL) {
      printf("Cannot open file.\n");
      exit(1);
    }

    printf("This will be written to the file OUT.");

    fclose(fp);

    return 0;
  }








22.14.freopen
22.14.1.freopen