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