Manpages

名 前

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/ に 書 か れ て い る 。