fpurge, __fpurge -
ストリームを一掃 (purge)
する
/* unsupported */
#include <stdio.h>
int fpurge(FILE *stream);
/* supported */
#include <stdio.h>
#include <stdio_ext.h>
void __fpurge(FILE *stream);
fpurge()
関数は、与えられたストリームのバッファーをクリアする。
出力ストリームでこれを行うと、書き出されていない出力は捨てられる。
入力ストリームでこれを行うと、
下層にあるオブジェクトから読み込まれ
getc(3)
による取得を待っている入力が、すべて捨てられる。
これには
ungetc(3)
によって戻されたテキストも含まれる。
fflush(3) も参照のこと。
__fpurge()
関数も全く同じことを行うが、ただし返り値を返さない。
成功すると
fpurge() は 0
を返す。
エラーが起こると -1
を返し、
errno
を適切な値に設定する。
- EBADF
-
stream
がオープンされていない。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
__fpurge() |
Thread safety |
MT-Safe race:stream |
これらの関数は標準ではなく、よって移植性もない。
fpurge() 関数は 4.4BSD
で導入されたが、Linux
では利用できない。
__fpurge() 関数は Solaris
で導入され、glibc 2.1.95
以降には存在している。
通常は入力バッファーを捨てようとするのは間違っている。
fflush(3),
setbuf(3),
stdio_ext(3)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。