Provided by: manpages-de-dev_0.10-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 trat ein I/O-Fehler auf.

KONFORM ZU

       SVr4, 4.3BSD, POSIX.1-2001.

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.

       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  3.32  des  Projekts
       Linux-man-pages. Eine Beschreibung des Projekts und Informationen,  wie
       Fehler     gemeldet     werden     können,     finden     sich    unter
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite  wurde  von  Ralf  Demmer
       <rdemmer@rdemmer.de>       und       Martin       Eberhard      Schauer
       <Martin.E.Schauer@gmx.de> 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>.