stdio_extのヘルプ・マニュアル
日本語 英語
stdio_ext --help
man stdio_ext
STDIO_EXT(3) Linux Programmer’s Manual STDIO_EXT(3)
名前
__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading,
__fsetlocking, __fwritable, __fwriting, _flushlbf - 標準入出力ファイ ル
構造体へのインタフェース
書式
#include
#include
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() 関数は、ストリームのバッファの内容を廃棄する。
関連項目
flockfile(3), fpurge(3)
2001-12-16 STDIO_EXT(3)
STDIO_EXT(3) Linux Programmer’s Manual STDIO_EXT(3)
NAME
__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading,
__fsetlocking, __fwritable, __fwriting, _flushlbf - interfaces to stdio
FILE structure
SYNOPSIS
#include
#include
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);
DESCRIPTION
Solaris introduced routines to allow portable access to the internals
of the FILE structure, and glibc also implemented these.
The __fbufsize() function returns the size of the buffer currently used
by the given stream.
The __fpending() function returns the number of bytes in the output
buffer. For wide-oriented streams the unit is wide characters. This
function is undefined on buffers in reading mode, or opened read-only.
The __flbf() function returns a non-zero value if the stream is line-
buffered, and zero otherwise.
The __freadable() function returns a non-zero value if the stream
allows reading, and zero otherwise.
The __fwritable() function returns a non-zero value if the stream
allows writing, and zero otherwise.
The __freading() function returns a non-zero value if the stream is
read-only, or if the last operation on the stream was a read operation,
and zero otherwise.
The __fwriting() function returns a non-zero value if the stream is
write-only (or append-only), or if the last operation on the stream was
a write operation, and zero otherwise.
The __fsetlocking() function can be used to select the desired type of
locking on the stream. It returns the current type. The type argument
can take the following three values:
FSETLOCKING_INTERNAL
Perform implicit locking around every operation on the given
stream (except for the *_unlocked ones). This is the default.
FSETLOCKING_BYCALLER
The caller will take care of the locking (possibly using flock-
file(3) in case there is more than one thread), and the stdio
routines will not do locking until the state is reset to FSET-
LOCKING_INTERNAL.
FSETLOCKING_QUERY
Don’t change the type of locking. (Only return it.)
The _flushlbf() function flushes all line-buffered streams. (Presum-
ably so that output to a terminal is forced out, say before reading
keyboard input.)
The __fpurge() function discards the contents of the stream’s buffer.
SEE ALSO
flockfile(3), fpurge(3)
COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
2001-12-16 STDIO_EXT(3)