18.27 Datei schließen – close
 
close() dient dazu, eine Datei mit dem Deskriptor fh zu schließen, die zuvor mit open() oder create() geöffnet bzw. erzeugt wurde. Denn auch mit der Funktion open() kann nur eine bestimmte Anzahl von Dateien gleichzeitig geöffnet werden Die Anzahl der maximal offenen Dateien ist in der Konstante OPEN_MAX deklariert. Hier die Syntax zu close():
int close(int fh);
Der Rückgabewert der Funktion ist bei Fehler –1, ansonsten 0. Hierzu noch ein kurzes Listing:
/* close.c */
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#ifdef __unix__
#include <unistd.h>
#elif __MSDOS__ || __WIN32__ || _MSC_VER
#include <io.h>
#endif
int main(void) {
int fh;
if((fh=open("adressen.txt", O_RDONLY | O_CREAT)) == –1) {
perror("Fehler bei open");
return EXIT_FAILURE;
}
if((close(fh)) == –1)
printf("Fehler beim Schliessen der Datei\n");
else
printf("Datei wurde ordentlich geschlossen\n");
return EXIT_SUCCESS;
}
Sie öffnen hier mit open() eine Datei zum Lesen. Falls diese nicht existiert, wird eine neue erzeugt. Danach wird der Deskriptor wieder mit einer Überprüfung, ob der Schließvorgang ordnungsgemäß verlief, geschlossen. Bei Programmende schließen sich die offenen Deskriptoren selbst.
|