fopen, _wfopen
Nach oben zu stdio.h - Index
Header-Datei
stdio.h
Kategorie
Eingabe-/Ausgaberoutinen
Prototyp
FILE *fopen(const char *filename, const char *mode); FILE *_wfopen(const wchar_t *filename, const wchar_t *mode);
Beschreibung
Öffnet einen Stream.
fopen öffnet die in filename angegebene Datei und verbindet einen Stream mit ihr. fopen gibt einen Zeiger zurück, der in den folgenden Operationen dazu dient, den Stream zu identifizieren.
Der in Aufrufen von fopen verwendete String mode kann einen der folgenden Werte annehmen:
r |
Öffnet die Datei nur für den Lesezugriff. |
w |
Erstellt die Datei für den Schreibzugriff. Ist eine Datei mit diesem Namen schon vorhanden, wird sie überschrieben. |
a |
Anhängen; die Datei wird für den Schreibzugriff am Ende der Datei geöffnet oder, wenn nicht vorhanden, für den Schreibzugriff erstellt. |
r+ |
Öffnet eine vorhandene Datei für die Aktualisierung (lesen und schreiben). |
w+ |
Öffnet eine neue Datei für die Aktualisierung (lesen und schreiben). Ist eine Datei mit diesem Namen schon vorhanden, wird sie überschrieben. |
a+ |
Für Anhängen öffnen; öffnet oder, wenn nicht vorhanden, erstellt eine Datei für die Aktualisierung am Ende der Datei. |
Um anzugeben, dass eine gegebene Datei im Textmodus geöffnet oder erstellt wird, hängen Sie ein t
an den String mode an (rt
', w+t
usw.). Für den Binärmodus hängen Sie entsprechend ein b
an den String mode an (wb
, a+b
usw.). fopen erlaubt auch, das t
oder b
zwischen den Buchstaben und das Zeichen +
im String mode einzufügen; rt+
entspricht beispielsweise r+t
.
Wird t
oder b
im String mode nicht angegeben, bestimmt die globale Variable _fmode den Modus. Ist _fmode auf O_BINARY
gesetzt, werden Dateien im Binärmodus geöffnet. Ist _fmode auf O_TEXT
gesetzt, werden Dateien im Textmodus geöffnet. Diese O_...
-Konstanten sind in fcntl.h definiert.
Wird eine Datei für die Aktualisierung geöffnet, kann auf den zugehörigen Stream lesend und schreibend zugegriffen werden. Jedoch:
- Einer Ausgabe kann nicht direkt eine Eingabe folgen, ohne dazwischen fseek oder rewind aufzurufen.
- Einer Eingabe kann nicht direkt eine Ausgabe folgen, ohne dass dazwischen fseek oder rewind aufgerufen wird oder eine Eingabe erfolgt, die an das Dateiende gelangt.
Rückgabewert
Bei erfolgreichem Abschluss gibt fopen einen Zeiger auf den neu geöffneten Stream zurück. Ist ein Fehler aufgetreten, wird NULL zurückgegeben.
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
fopen |
+ |
+ |
+ |
+ |
_wfopen |
Nur NT |