Manpages

名 前

__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf − 標 準 入 出 力 フ ァ イ ル 構 造 体 へ の イ ン タ ー フ ェ ー ス

書 式

#include <stdio.h>
#include <stdio_ext.h>

size_t __fbufsize(FILE *stream);
size_t __fpending(FILE *
stream);
int __flbf(FILE *
stream);
int __freadable(FILE *
stream);
int __fwritable(FILE *
stream);
int __freading(FILE *
stream);
int __fwriting(FILE *
stream);
int __fsetlocking(FILE *
stream, int type);
void _flushlbf(void);
void __fpurge(FILE *
stream);

説 明

Solaris で は 、 FILE 構 造 体 の 内 部 へ ポ ー タ ブ ル な か た ち で ア ク セ ス で き る 手 段 が 導 入 さ れ て お り 、 こ れ ら は glibc で も 実 装 さ れ て い る 。

__fbufsize() 関 数 は 、 指 定 さ れ た ス ト リ ー ム が 使 用 し て い る バ ッ フ ァ ー サ イ ズ を 返 す 。

__fpending() 関 数 は 、 出 力 バ ッ フ ァ ー に 入 っ て い る デ ー タ の バ イ ト 数 を 返 す 。 ワ イ ド キ ャ ラ ク タ ー を 扱 う ス ト リ ー ム の 場 合 、 ワ イ ド キ ャ ラ ク タ ー 単 位 で 計 算 さ れ る 。 バ ッ フ ァ ー が 読 み 出 し モ ー ド の 場 合 や 読 み 出 し 専 用 で 開 か れ て い る 場 合 の こ の 関 数 の 振 舞 い は 未 定 義 で あ る 。

__flbf() 関 数 は 、 ス ト リ ー ム が ラ イ ン バ ッ フ ァ ー の 場 合 は 0 以 外 を 、 そ れ 以 外 の 場 合 は 0 を 返 す 。

__freadable() 関 数 は 、 ス ト リ ー ム が 読 み 出 し 可 能 な 場 合 は 0 以 外 を 、 そ れ 以 外 の 場 合 は 0 を 返 す 。

__fwritable() 関 数 は 、 ス ト リ ー ム が 書 き 込 み 可 能 な 場 合 は 0 以 外 を 、 そ れ 以 外 の 場 合 は 0 を 返 す 。

__freading() 関 数 は 、 ス ト リ ー ム が 読 み 出 し 専 用 の 場 合 、 ま た は ス ト リ ー ム に 対 す る 直 前 の 操 作 が 読 み 出 し 操 作 で あ っ た 場 合 は 0 以 外 を 返 し 、 そ れ 以 外 の 場 合 は 0 を 返 す 。

__fwriting() 関 数 は 、 ス ト リ ー ム が 書 き 込 み 専 用 (も し く は 追 加 専 用 )の 場 合 、 ま た は ス ト リ ー ム に 対 す る 直 前 の 操 作 が 書 き 込 み 操 作 で あ っ た 場 合 は 0 以 外 を 返 し 、 そ れ 以 外 の 場 合 は 0 を 返 す 。

__fsetlocking() 関 数 は 、 ス ト リ ー ム の ロ ッ ク 形 式 を 選 択 す る た め に 使 用 で き る 。 返 り 値 は 、 現 在 の ロ ッ ク 形 式 で あ る 。 type 引 き 数 は 以 下 の 3 種 類 の 値 を と る こ と が で き る :
FSETLOCKING_INTERNAL
指 定 さ れ た ス ト リ ー ム に 対 し て 操 作 が 行 わ れ る 度 に 、 操 作 の 前 後 で 明 示 的 に 指 示 し な く て も ス ト リ ー ム の ロ ッ ク 処 理 を 行 う (但 し 、 *_unlocked 関 数 を 使 用 し た 場 合 は 例 外 で あ る )。 こ れ が デ フ ォ ル ト の ロ ッ ク 形 式 で あ る 。
FSETLOCKING_BYCALLER
関 数 の 呼 び 出 し 元 で ロ ッ ク の 面 倒 を み る 。 (お そ ら く 、 複 数 の ス レ ッ ド が 存 在 す る 状 況 で は flockfile(3) を 使 う こ と に な る だ ろ う ) ロ ッ ク 形 式 が FSETLOCKING_INTERNAL に リ セ ッ ト さ れ る ま で は 標 準 入 出 力 関 連 の 関 数 は ロ ッ ク 処 理 を 行 わ な い 。
FSETLOCKING_QUERY
ロ ッ ク 形 式 の 変 更 を 行 わ な い 。 (現 在 の 形 式 を 返 す だ け で あ る )

_flushlbf() 関 数 は 、 す べ て の ラ イ ン バ ッ フ ァ ー (line−buffered) タ イ プ の ス ト リ ー ム の 内 容 を 出 力 (フ ラ ッ シ ュ )す る 。 (当 然 な が ら 、 端 末 へ の 出 力 が 強 制 的 に 行 わ れ る こ と に な る の で 、 キ ー ボ ー ド か ら の 入 力 を 読 み こ む 前 に こ の 関 数 を 呼 ん だ 方 が い い だ ろ う )

__fpurge() 関 数 は 、 ス ト リ ー ム の バ ッ フ ァ ー の 内 容 を 廃 棄 す る 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 __fbufsize(), __fpending(), __fpurge(), __fsetlocking() は 、 ス ト リ ー ム の ロ ッ ク を 行 わ な い 。 そ の た め 、 ス レ ッ ド セ ー フ で は な い 。 関 数 __flbf(), __freadable(), __freading(), __fwritable(), __fwriting(), _flushlbf() は ス レ ッ ド セ ー フ で あ る 。

関 連 項 目

flockfile(3), fpurge(3)

こ の 文 書 に つ い て

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