.\" -*- coding: UTF-8 -*- .\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) and .\" and Copyright 2006 Michael Kerrisk .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Modified 21 Aug 1994 by Michael Chastain : .\" Removed note about old libc (pre-4.5.26) translating to 'sync'. .\" Modified 15 Apr 1995 by Michael Chastain : .\" Added `see also' section. .\" Modified 13 Apr 1996 by Markus Kuhn .\" Added remarks about fdatasync. .\" Modified 31 Jan 1997 by Eric S. Raymond .\" Modified 18 Apr 2001 by Andi Kleen .\" Fix description to describe what it really does; add a few caveats. .\" 2006-04-28, mtk, substantial rewrite of various parts. .\" 2012-02-27 Various changes by Christoph Hellwig .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH FSYNC 2 "27. Februar 2012" Linux Linux\-Programmierhandbuch .SH BEZEICHNUNG fsync, fdatasync \- den gepufferten Dateiinhalt mit einem Datenträger synchronisieren .SH ÜBERSICHT \fB#include \fP .sp \fBint fsync(int \fP\fIfd\fP\fB);\fP .sp \fBint fdatasync(int \fP\fIfd\fP\fB);\fP .sp .in -4n Mit Glibc erforderliche Makros (siehe \fBfeature_test_macros\fP(7)): .in .sp \fBfsync\fP(): _BSD_SOURCE || _XOPEN_SOURCE .br .\" _POSIX_C_SOURCE\ >=\ 200112L only since glibc 2.8 || /* seit Glibc 2.8: */ _POSIX_C_SOURCE\ >=\ 200112L .br \fBfdatasync\fP(): _POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500 .SH BESCHREIBUNG \fBfsync\fP() überträgt alle veränderten gepufferten Daten (d.h. geänderte Seiten des Pufferzwischenspeichers) von der Datei, auf die der Dateideskriptor \fIfd\fP 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 \fBstat\fP(2)). Der Aufruf von \fBfsync\fP() garantiert nicht, dass der Verzeichniseintrag der Datei die Platte erreicht. Dafür wird auch ein explizites \fBfsync\fP() auf einem Dateideskriptor des Verzeichnisses benötigt. \fBfdatasync\fP() ist \fBfsync\fP() ä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 \fIst_atime\fP oder \fIst_mtime\fP (Zeit des letzten Zugriffs und Zeit der letzten Änderung; siehe \fBstat\fP(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 (\fIst_size\fP, wie sie von \fBftruncate\fP(2) vorgenommen wird) ein Übertragen der Metadaten erfordern. Das Ziel von \fBfdatasync\fP() ist die Verminderung der Plattenaktivität durch Anwendungen, die nicht das Synchronisieren aller Metadaten mit der Platte erfordern. .SH RÜCKGABEWERT Bei Erfolg gibt dieser Systemaufruf Null zurück. Bei einem Fehler wird \-1 zurückgegeben und \fIerrno\fP entsprechend gesetzt. .SH FEHLER .TP \fBEBADF\fP \fIfd\fP ist kein gültiger offener Dateideskriptor. .TP \fBEIO\fP Während der Synchronisation ist ein Fehler aufgetreten. .TP \fBEROFS\fP, \fBEINVAL\fP \fIfd\fP ist mit einer Spezialdatei verbunden, die keine Synchronisation unterstützt. .SH "KONFORM ZU" 4.3BSD, POSIX.1\-2001. .SH VERFÜGBARKEIT .\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L. .\" -1: unavailable, 0: ask using sysconf(). .\" glibc defines them to 1. Auf POSIX\-Systemen, auf denen \fBfdatasync\fP() verfügbar ist, ist \fB_POSIX_SYNCHRONIZED_IO\fP in \fI\fP als ein Wert größer als 0 definiert. (Siehe auch \fBsysconf\fP(3).) .SH ANMERKUNGEN Auf einigen UNIX\-Systemen (aber nicht Linux) muss \fIfd\fP ein \fIschreibbarer\fP Dateideskriptor sein. Bis einschließlich Linux 2.2 entspricht \fBfdatasync\fP() \fBfsync\fP() und steigert daher nicht die Leistung. Die \fBfsync\fP()\-Implementierungen in älteren Kerneln oder weniger benutzten Dateisystemen wissen nicht, wie Plattenzwischenspeicher geleert werden. In diesen Fällen müssen Plattenzwischenspeicher mittels \fBhdparm\fP(8) oder \fBsdparm\fP(8) deaktiviert werden, um sicheres Funktionieren zu garantieren. .SH "SIEHE AUCH" \fBbdflush\fP(2), \fBopen\fP(2), \fBsync\fP(2), \fBsync_file_range\fP(2), \fBhdparm\fP(8), \fBmount\fP(8), \fBsync\fP(8), \fBupdate\fP(8) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man\-pages/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Chris Leick 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 .