kazmax - Linux で自宅サーバー

stdio_ext - ライブラリコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 関連項目

名前

__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 ()関数は、ストリームのバッファの内容を廃棄する。

関連項目