SYNC

Section: Linux Programmer's Manual (2)
Updated: 2014-08-19
Index JM Home Page roff page
 

名前

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 から上述のようになった。 glibc 2.2.1 以前ではプロトタイプは "int sync(void)" で、 sync() は常に 0 を返していた。  

バグ

標準規格 (例えば POSIX.1-2001) によると、 sync() は書き込むことを予定に 組み込むのみで実際に書き込みが終了する前に戻ってもよいことになっている。 一方で Linux はバージョン 1.3.20 からは書き込みが終了するまで待つ。 (最近のディスクは大きなキャッシュを持っているため、
 これはデータの完全性 (data integrity) までは保証していない。)  

関連項目

bdflush(2), fdatasync(2), fsync(2), sync(1)  

この文書について

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


 

Index

名前
書式
説明
返り値
エラー
バージョン
準拠
注意
バグ
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 03:33:27 GMT, March 14, 2018