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

上一篇: fread() - C語言庫函數 下一篇: fseek() - C語言庫函數