Rechercher une page de manuel
fdatasync
Langue: ja
Version: 1996-04-13 (mandriva - 01/05/08)
Section: 2 (Appels système)
名前
fdatasync - ファイルのメモリ上のデータをディスク上のものと同期させる書式
#include <unistd.h>int fdatasync(int fd);
説明
fdatasync() は (システム・コールから戻る前に) ファイルの全てのデータ・バッファーを ディスクにフラッシュ (flush) する。これは fsync(2) に似ているが、アクセス時刻のようなメタデータを更新しない。データベースにアクセスしたり、ログ・ファイルに書き込むような アプリケーションはしばしば小さなデータの断片 (例えばログ・ファイルの一行) を書き込み、それがハードディスクに物理的に格納されることを保証する ために、すぐに fsync(2) を呼び出す。不幸なことに、 fsync(2) は常に二回の書き込み操作を行なう: 一つは新しく書き込まれたデータを、 もう一つは inode の修正時刻を更新するために。修正時刻がトラザンクション に関係なければ、 fdatasync() を使用することで不必要なディスクへの inode の書き込み処理を 避けることができる。
返り値
成功した場合は 0 が返される。エラーの場合は -1 を返し、 errno に適切な値が設定される。エラー
- EBADF
- fd が書き込みのためにオープンされた有効なファイル・ディスクリプターではない。
- EIO
- 同期操作の間にエラーが起こった。
- EROFS, EINVAL
- fd が同期操作をサポートしていない特殊なファイルを参照している。
準拠
POSIX.1-2001.可用性
fdatasync() が利用可能な POSIX システムでは、 <unistd.h> において _POSIX_SYNCHRONIZED_IO が 0 より大きい値に定義されている (sysconf(3) を参照すること)。注意
Linux 2.2 以前では、 fdatasync() は fsync(2) と等価であり、したがって性能上の利点もない。関連項目
fsync(2), sync_file_range(2)B.O. Gallmeister, POSIX.4, O'Reilly, pp. 220-223 and 343.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre