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

BEZEICHNUNG

       fsync, fdatasync - den gepufferten Dateiinhalt mit einem Datenträger synchronisieren

ÜBERSICHT

       #include <unistd.h>

       int fsync(int fd);

       int fdatasync(int fd);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       fsync(): _BSD_SOURCE || _XOPEN_SOURCE
                || /* seit Glibc 2.8: */ _POSIX_C_SOURCE >= 200112L
       fdatasync(): _POSIX_C_SOURCE >= 199309L || _XOPEN_SOURCE >= 500

BESCHREIBUNG

       fsync()  überträgt alle veränderten gepufferten Daten (d.h. geänderte Seiten des Pufferzwischenspeichers)
       von der Datei, auf die der Dateideskriptor fd  weist,  auf  die  Platte  (oder  ein  anderes  dauerhaftes
       Speichermedium),  so  dass  sämtliche  Änderungsinformationen  sogar nach einem Absturz oder Neustart des
       Systems  wieder  hergestellt  werden  können.  Dies  beinhaltet   das   Schreiben   oder   Leeren   eines
       Plattenzwischenspeichers,  falls  vorhanden.  Der  Aufruf  blockiert  bis  das  Gerät  meldet,  dass  die
       Übertragung vollständig ist. Außerdem  werden  Metadaten-Informationen  übertragen,  die  mit  der  Datei
       verknüpft sind (siehe stat(2)).

       Der Aufruf von fsync() garantiert nicht, dass der Verzeichniseintrag der Datei die Platte erreicht. Dafür
       wird auch ein explizites fsync() auf einem Dateideskriptor des Verzeichnisses benötigt.

       fdatasync()  ist fsync() ähnlich, überträgt aber keine geänderten Metadaten, sofern diese Metadaten nicht
       benötigt werden, um die korrekte Handhabung einer nachfolgenden Datenabfrage zu  ermöglichen.  Änderungen
       an  st_atime  oder  st_mtime  (Zeit  des  letzten  Zugriffs und Zeit der letzten Änderung; siehe stat(2))
       erfordern zum Beispiel keine Übertragung, da sie nicht für die korrekte  Handhabung  eines  nachfolgenden
       Lesens  der  Daten  benötigt werden. Andererseits würde die Änderung der Dateigröße (st_size, wie sie von
       ftruncate(2) vorgenommen wird) ein Übertragen der Metadaten erfordern.

       Das Ziel von fdatasync() ist die Verminderung der  Plattenaktivität  durch  Anwendungen,  die  nicht  das
       Synchronisieren aller Metadaten mit der Platte erfordern.

RÜCKGABEWERT

       Bei  Erfolg  gibt  dieser  Systemaufruf  Null  zurück.  Bei  einem Fehler wird -1 zurückgegeben und errno
       entsprechend gesetzt.

FEHLER

       EBADF  fd ist kein gültiger offener Dateideskriptor.

       EIO    Während der Synchronisation ist ein Fehler aufgetreten.

       EROFS, EINVAL
              fd ist mit einer Spezialdatei verbunden, die keine Synchronisation unterstützt.

KONFORM ZU

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

VERFÜGBARKEIT

       Auf POSIX-Systemen, auf denen fdatasync() verfügbar ist, ist _POSIX_SYNCHRONIZED_IO in <unistd.h> als ein
       Wert größer als 0 definiert. (Siehe auch sysconf(3).)

ANMERKUNGEN

       Auf einigen UNIX-Systemen (aber nicht Linux) muss fd ein schreibbarer Dateideskriptor sein.

       Bis einschließlich Linux 2.2 entspricht fdatasync() fsync() und steigert daher nicht die Leistung.

       Die fsync()-Implementierungen in älteren Kerneln oder weniger benutzten Dateisystemen wissen  nicht,  wie
       Plattenzwischenspeicher geleert werden. In diesen Fällen müssen Plattenzwischenspeicher mittels hdparm(8)
       oder sdparm(8) deaktiviert werden, um sicheres Funktionieren zu garantieren.

SIEHE AUCH

       bdflush(2), open(2), sync(2), sync_file_range(2), hdparm(8), mount(8), sync(1)

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  Chris  Leick  <c.leick@vollbio.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                                         FSYNC(2)