fopen, _wfopen

Aus RAD Studio
Wechseln zu: Navigation, Suche

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