C-Bibliotheksfunktionen -freopen()
C-Standardbibliothek - <stdio.h>
Beschreibung
C-BibliotheksfunktionenFILE *freopen(const char *filename, const char *mode, FILE *stream)Verknüpft einen neuen Dateinamenfilenamemit dem angegebenen geöffneten Stream,streamund schließt die alte Datei im Stream.
Deklaration
Nachfolgend finden Sie die Deklaration der Funktion freopen().
FILE *freopen(const char *filename, const char *mode, FILE *stream)
Parameter
- filename-- Dies ist die C-Zeichenkette, die den Namen der zu öffnenden Datei enthält.
- mode-- Dies ist die C-Zeichenkette, die den Dateizugriffsmodus enthält, wobei die Modi wie folgt sind:
| Mode | Beschreibung |
|---|---|
| "r" | Öffnet eine Datei zum Lesen. Die Datei muss vorhanden sein. |
| "w" | Erstellt eine leere Datei zum Schreiben. Wenn der Dateiname mit einer vorhandenen Datei übereinstimmt, wird der Inhalt der vorhandenen Datei gelöscht, und die Datei wird als neue leere Datei behandelt. |
| "a" | Hängt an eine Datei an. Schreiboperationen hängen Daten an das Ende der Datei an. Wenn die Datei nicht existiert, wird sie erstellt. |
| "r+" | Öffnet eine Datei zum Aktualisieren, die gelesen und geschrieben werden kann. Die Datei muss vorhanden sein. |
| "w+" | Erstellt eine leere Datei zum Lesen und Schreiben. |
| "a+" | Öffnet eine Datei zum Lesen und Anhängen. |
- stream-- Dies ist ein Zeiger auf ein FILE-Objekt, das den erneut zu öffnenden Stream identifiziert.
Rückgabewert
Wenn die Datei erfolgreich geöffnet wird, gibt die Funktion einen Zeiger auf das Objekt zurück, das den Stream identifiziert. Andernfalls gibt sie einen Nullzeiger zurück.
Beispiel
Das folgende Beispiel veranschaulicht die Verwendung der Funktion freopen().
#include <stdio.h>
int main ()
{
FILE *fp;
printf("该文本重定向到 stdout\n");
fp = freopen("file.txt", "w+", stdout);
printf("该文本重定向到 file.txt\n");
fclose(fp);
return(0);
}
Lassen Sie uns das obige Programm kompilieren und ausführen. Es wird die folgenden Zeilen an die Standardausgabe STDOUT senden, da wir anfangs die Standardausgabe nicht geöffnet haben:
该文本重定向到 stdout
Beim Aufruf vonfreopen()Danach verknüpft es die Standardausgabe STDOUT mit der Datei,file.txtund egal, was wir in die Standardausgabe STDOUT schreiben, es wird in file.txt geschrieben, sodass die Datei file.txt den folgenden Inhalt hat.
该文本重定向到 file.txt
Nun wollen wir mit dem folgenden Programm den Inhalt der obigen Datei anzeigen:
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
fp = fopen("file.txt","r");
while(1)
{
c = fgetc(fp);
if( feof(fp) )
{
break ;
}
printf("%c", c);
}
fclose(fp);
return(0);
}
Weitere Erweiterungen