Provided by: manpages-ja-dev_0.5.0.0.20140515+dfsg-2_all bug

名前

       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)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。