名前
sync - バッファキャッシュをディスクに書き込む
書式
#include <unistd.h>
void sync(void);
説明
sync() はまず inode をバッファへ書き込み、 それからバッファ(buffer)をディスクへ書き込む。
エラー
この関数は常に成功する。
準拠
SVr4, 4.3BSD, POSIX.1-2001.
注意
さまざまな標準規格での規定にしたがって、 glibc 2.2.2 から Linux でのプロトタイプは上述のようになった。 libc4, libc5 と、2.2.1 までの glibc では "int sync(void)" で、 sync() は常に 0 を返していた。
バグ
標準規格 (例えば POSIX.1-2001) によると、 sync() は書き込むことを予定に 組み込むのみで実際に書き込みが終了する前に戻ってもよいことになっている。 一方で Linux はバージョン 1.3.20 からは書き込みが終了するまで待つ。 (最近のディスクは大きなキャッシュを持っているため、 これはデータの完全性 (data integrity) までは保証していない。)