Provided by: manpages-de-dev_1.11-1_all bug

BEZEICHNUNG

       close - Dateideskriptor schließen

ÜBERSICHT

       #include <unistd.h>

       int close(int fd);

BESCHREIBUNG

       close()  schließt  einen  Dateideskriptor,  so  dass  dieser  nicht mehr zu einer Datei gehört und wieder
       verwendet werden kann. Alle zum  Prozess  gehörenden  Datensatz-Sperren  (siehe  fcntl(2))  der  mit  dem
       Deskriptor  verbundenen  Datei  werden  aufgehoben.  Die Aufhebung der Sperren erfolgt unabhängig von dem
       Deskriptor, mit dem die Sperre eingerichtet wurde.

       Wenn fd der letzte Deskriptor der zugehörigen offenen Datei ist (siehe open(2)), werden  die  zugehörigen
       Ressourcen  freigegeben.  War  der  Deskriptor  der  letzte Verweis auf eine Datei, die mittels unlink(2)
       entfernt wurde, wird die Datei gelöscht.

RÜCKGABEWERT

       Nach erfolgreicher Ausführung gibt close()  0  zurück.  Bei  Fehlern  wird  -1  zurückgegeben  und  errno
       entsprechend gesetzt.

FEHLER

       EBADF  fd ist kein gültiger Deskriptor für eine geöffnete Datei.

       EINTR  Der Aufruf von close() wurde von einem Signal unterbrochen (siehe signal(7)).

       EIO    Es ist ein E/A-Fehler (engl. I/O) aufgetreten.

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

ANMERKUNGEN

       Es  ist ein verbreiteter, ernster Programmierfehler, den Rückgabewert von close() nicht zu prüfen. Es ist
       durchaus möglich,  dass  Fehler  bei  einer  früheren  write(2)-Operation  erst  bei  dem  abschließenden
       close()-Zugriff  gemeldet  werden.  Wird  der Rückgabewert beim Schließen einer Datei nicht geprüft, kann
       dies zu unbemerktem Datenverlust führen. Dies kann vor allem mit NFS und »Disk Quotas« beobachtet werden.
       Speziell sollte close() nicht nach einem EINTR erneut versucht werden, da dies dazu führen kann, dass ein
       wiederverwendeter Deskriptor von einem anderen Prozess geschlossen wird.

       Ein erfolgreiches »close« garantiert nicht, dass die Daten erfolgreich  auf  der  Festplatte  gespeichert
       wurden,  weil  der  Kernel  verzögert schreibt. Es ist bei Dateisystemen nicht üblich, beim Schließen des
       Streams die Puffer zu leeren. Wenn Sie sicher sein müssen, dass  die  Daten  physisch  gespeichert  sind,
       verwenden Sie fsync(2). (Hierbei kommt es auf die Hardware Ihrer Festplatte an.)

       Wahrscheinlich ist es unklug, Dateideskriptoren zu schließen, die möglicherweise noch durch Systemaufrufe
       in  anderen  Threads  desselben Prozesses belegt sein können. Da Dateideskriptoren wiederverwendet werden
       können, kann dies zu undurchsichtigen »Race Conditions« mit unbeabsichtigten Nebenwirkungen führen.

SIEHE AUCH

       fcntl(2), fsync(2), open(2), shutdown(2), unlink(2), fclose(3)

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  4.04  des  Projekts  Linux-man-pages.  Eine  Beschreibung  des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
       sich unter http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Ralf Demmer <rdemmer@rdemmer.de>, Martin Eberhard
       Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

       Diese  Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser  Handbuchseite  finden,  schicken  Sie  bitte  eine  E-Mail  an
       <debian-l10n-german@lists.debian.org>.

Linux                                            8. August 2015                                         CLOSE(2)