freopen_s
Nach oben zu stdio.h - Index
Header-Datei
stdio.h
Kategorie
Funktionen für den Dateizugriff
Prototyp
errno_t freopen_s(FILE * restrict * restrict newstreamptr, const char * restrict filename, const char * restrict mode, FILE * restrict stream);
Beschreibung
Ersetzt freopen und fügt Sicherheitserweiterungen hinzu.
freopen_s ersetzt den geöffneten Stream durch die angegebene Datei. Der Stream wird unabhängig davon, ob die Datei geöffnet werden konnte, geschlossen. Mit freopen_s kann die mit stdin, stdout oder stderr verbundene Datei geändert werden. Dazu wird zunächst versucht, die mit dem Parameter stream verbundene Datei zu schließen, dann wird die in filename angegebene Datei geöffnet und der im Parameter stream angegebene Stream mit dieser Datei verbunden.
Wenn die Datei erfolgreich geöffnet wurde, wird der auf die Datei zeigende Wert auf den Parameter newstreamptr gesetzt. Ansonsten ist newstreamptr Null.
Der mode-String kann dieselben Werte mit den dieselben Bedeutungen wie für freopen haben.
Bei einer Zugriffsverletzung schließt oder öffnet freopen_s keine Dateien.
Rückgabewert
Bei Erfolg gibt freopen_s Null zurück, ansonsten wird ein Nicht-Null-Wert zurückgegeben.
Beispiel
#include <stdio.h> int main(void) { /* Redirect stdout */ FILE *file; file = new FILE; if (freopen_s(&file,"OUTPUT.FIL", "w", stdout)){ fprintf(stderr, "error redirecting stdout\n"); exit(1); } /* This output will go to a file */ printf("This will go into a file."); /* Close the standard output stream */ fclose(stdout); return 0; }
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
freopen_s |
+ |
+ |
+ |
+ |