Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all
名前
sync, syncfs - バッファキャッシュをディスクに書き込む
書式
#include <unistd.h> void sync(void); int syncfs(int fd); glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照): sync(): _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED syncfs(): _GNU_SOURCE
説明
sync() を呼び出すと、バッファされたファイルのメタデータとデータ本体に 対して行われた全ての 変更が、対応するファイルシステムに書き込まれる。 syncfs() は sync() と同様だが、オープンされたファイルディスクリプタ fd が参照するファイル を含むファイルシステムだけを同期する点が異なる。
返り値
syncfs() は成功すると 0 を返す。エラーが発生した場合は -1 を返し、 errno にエラーを示す値 を設定する。
エラー
sync() は常に成功する。 syncfs() は少なくとも以下の理由で失敗する可能性がある: EBADF fd が有効なファイルディスクリプタでない。。
バージョン
syncfs() は Linux 2.6.39 で初めて登場した。 ライブラリによるサポートは glibc バージョン 2.14 で追加された。
準拠
sync(): SVr4, 4.3BSD, POSIX.1-2001. syncfs() is Linux 固有である。
注意
Linux での sync() のプロトタイプは、さまざまな標準規格での規定に準拠し、 glibc 2.2.2 から 上述のようになった。 libc4, libc5 と、2.2.1 までの glibc ではプロトタイプは "int sync(void)" で、 sync() は常に 0 を返していた。
バグ
標準規格 (例えば POSIX.1-2001) によると、 sync() は書き込むことを予定に 組み込むのみで実際 に書き込みが終了する前に戻ってもよいことになっている。 一方で Linux はバージョン 1.3.20 か らは書き込みが終了するまで待つ。 (最近のディスクは大きなキャッシュを持っているため、 これはデータの完全性 (data integrity) までは保証していない。)
関連項目
bdflush(2), fdatasync(2), fsync(2), sync(8), update(8)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。