Suche
Suche Menü

Öffnen & Schließen

FILE * fopen(const char *filename, const char *mode);

Mit fopen öffnen wir Dateien für die Verarbeitung. Der Parameter filename gibt den Pfad der Datei auf der Festplatte an, die verarbeitet werden soll. Je nach Betriebssystem wird der Pfad anders gestaltet. Unter Windows wird der Dateipfad mit den schrägen Strichen nach hinten (Backslash) geschrieben, z.B. "C:\kurt\datei.txt". Unter Linux-Systemen wird statt dem Backslash der normale Slash verwendet, z.B. "/home/kurt/datei.txt". Wird nur ein Dateiname ohne Pfad angegeben, so wird die Datei im gleichen Verzeichnis (Ordner) gesucht, in dem  das Programm liegt.

Der Parameter mode gibt an, in welchem Modus die Datei geöffnet werden soll. Der Modus entscheidet darüber, welche Operationen auf die Datei ausgeführt werden können: Lesen, Schreiben oder beide.

Tritt ein Fehler auf ist der Rückgabewert NULL, andernfalls ist es ein Zeiger vom Typ FILE, dieser Datentyp wird zum Verarbeiten von Dateien verwendet.

int fclose (FILE *fp);

int fcloseall();

Mit fclose wird eine Datei wieder geschlossen. Im Parameter wird der FILE-Zeiger (fp steht für filepointer) übergeben. Bei einem Fehler liefert die Funktion den Wert EOF zurück, andernfalls 0.

Mit fcloseall werden alle Dateien geschlossen, welche das Programm geöffnet hat. Bei einem Fehler ist der Rückgabewert EOF, andernfalls die Anzahl der geschlossenen Dateien.

Beispiel

In diesem Beispiel wird eine Datei im Lesemodus geöffnet. Ist ein Öffnen nicht möglich, wird eine Meldung ausgegeben. Kann sie geöffnet werden, wird sie einfach wieder geschlossen.

// Dateizeiger erstellen
FILE *fp;

// Datei oeffnen
fp = fopen("kurt.txt", "r");

if(fp == NULL) {
	printf("Datei konnte NICHT geoeffnet werden.\n");
}else {
	printf("Datei konnte geoeffnet werden.\n");
	// Datei schliessen
	fclose(fp);
}

Modus

Beim Öffnen einer Datei stehen uns folgende Angaben zum Modus zur Verfügung:

  • r, read, lesen
  • w, write, schreiben
  • a, append, anhängen
  • b, binary, Binärmodus
  • t, text, Textmodus

 

Diese Angaben können auch kombiniert werden. So wird z.B. mit "rw" eine Datei zum Lesen und Schreiben geöffnet. Der append Modus ist auch ein Schreibmodus, nur dass die ursprünglichen Daten der Datei unverändert bleiben und die neuen Daten an das Ende der Datei angehängt werden.

Folgendes sollte man beachten:

  • Existiert eine Datei und wird diese im Schreibmodus geöffnet, so wird der komplette Inhalt ohne Meldung gelöscht.
  • Existiert eine Datei nicht und wird versucht diese im Schreibmodus zu öffnen, so wird automatisch eine neue leere Datei erzeugt.