fdatasync

FDATASYNC(2)                Linux Programmer's Manual               FDATASYNC(2)



名前
       fdatasync - ファイルのメモリ上のデータをディスク上のものと同期させる

書式
       #include <unistd.h>

       #ifdef _POSIX_SYNCHRONIZED_IO

       int fdatasync(int fd);

       #endif

説明
       fdatasync は(システム・コールから戻る前に)ファイルの全てのデータ・バッファーを ディスクにフラッシュ(flush)する。これは
       fsync に似ているが、アクセス時刻のようなメタデータを更新しない。

       データベースにアクセスしたり、ログ・ファイルに書き込むような アプリケーションはしばしば小さなデータの断片(例えばログ・ファイルの一行)
       を書き込み、それがハードディスクに物理的に格納されることを保証する ために、すぐに fsync を呼び出す。不幸なことに、 fsync
       は常に二回の書き込み操作を行なう: 一つは新しく書き込まれたデータを、 もう一つは inode
       の修正時刻を更新するために。修正時刻がトラザンクション に関係なければ、 fdatasync を使用することで不必要なディスクへの inode
       の書き込み処理を 避けることができる。

返り値
       成功した場合はゼロを返される。エラーの場合は -1 を返し、 errno に適切な値が設定される。

エラー
       EBADF   fd が有効な書き込みのためにオープンされたファイル・ディスクリプターでない。

       EROFS, EINVAL
               fd が同期操作をサポートしていない特殊なファイルを参照している。

       EIO     同期操作の間にエラーが起こった。

バグ
       現在(Linux 2.0.23)のところ fdatasync fsync に等しい。


準拠
       POSIX1b (以前の POSIX.4)

関連項目
       fsync(2), B.O. Gallmeister, POSIX.4, O'Reilly, pp. 220-223 and 343.



Linux 1.3.86                      13 April 1996                     FDATASYNC(2)