Manpages

名 前

fflush − ス ト リ ー ム の 内 容 を 強 制 的 に 出 力 (フ ラ ッ シ ュ )す る

書 式

#include <stdio.h>

int fflush(FILE *stream);

説 明

出 力 ス ト リ ー ム に 関 し て は 、 fflush() は 、 ユ ー ザ ー 空 間 で バ ッ フ ァ ー リ ン グ さ れ て い る す べ て の デ ー タ を 指 定 さ れ た 出 力 に 書 き 出 す (フ ラ ッ シ ュ す る )、 も し く は ス ト リ ー ム stream の 下 位 に あ る 書 き 込 み 関 数 を 用 い て こ の ス ト リ ー ム を 更 新 す る 。

seek 可 能 な フ ァ イ ル に 関 連 付 け ら れ た 入 力 ス ト リ ー ム (デ ィ ス ク フ ァ イ ル は seek 可 能 だ が 、 パ イ プ や 端 末 は seek で き な い ) に 関 し て は 、 fflush() は 、 対 応 す る フ ァ イ ル か ら 取 得 さ れ た が 、 ア プ リ ケ ー シ ョ ン か ら は 読 み 出 さ れ て い な い バ ッ フ ァ ー デ ー タ を 全 て 破 棄 す る 。 ス ト リ ー ム は 開 い た 状 態 の ま ま で あ り 、 こ の 関 数 に よ っ て 何 の 影 響 も 受 け な い 。

stream 引 数 が NULL な ら ば 、 fflush() は 開 い て い る す べ て の 出 力 ス ト リ ー ム を フ ラ ッ シ ュ す る 。 こ れ ら の 処 理 を ロ ッ ク せ ず に 行 い た い と き は 、 unlocked_stdio(3) を 参 照 の こ と 。

返 り 値

成 功 す る と 0 が 返 さ れ る 。 そ の 他 の 場 合 に は EOF が 返 さ れ 、 errno が 、 エ ラ ー に 対 応 し た 値 に 設 定 さ れ る 。

エ ラ ー

EBADF

stream は 開 い て い る ス ト リ ー ム で は な い 。 あ る い は ス ト リ ー ム は 書 き 込 み 用 で は な い 。

fflush() 関 数 は write(2) に 関 し て 規 定 さ れ て い る エ ラ ー で 失 敗 す る こ と も あ る 。 こ の 場 合 errno も そ の 値 に 設 定 さ れ る 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 fflush() は ス レ ッ ド セ ー フ で あ る 。

準 拠

C89, C99, POSIX.1−2001, POSIX.1−2008.

POSIX.1−2001 で は 入 力 ス ト リ ー ム の フ ラ ッ シ ュ の 動 作 は 規 定 さ れ て い な か っ た が 、 POSIX.1−2008 で は 規 定 さ れ て い る 。

注 意

fflush() は 、 C ラ イ ブ ラ リ が 与 え て い る ユ ー ザ ー 空 間 の バ ッ フ ァ ー し か フ ラ ッ シ ュ し な い 。 デ ー タ が 物 理 的 に デ ィ ス ク に 保 存 さ れ る こ と を 保 証 し た け れ ば 、 カ ー ネ ル バ ッ フ ァ ー も フ ラ ッ シ ュ し な け れ ば な ら な い 。 こ れ に は 例 え ば sync(2)fsync(2) を 用 い る 。

関 連 項 目

fsync(2), sync(2), write(2), fclose(3), fopen(3), setbuf(3), unlocked_stdio(3)

こ の 文 書 に つ い て

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