FPURGE(3)

ИМЯ
fpurge, __fpurge - вычищает поток

ОБЗОР
/* не поддерживается */
#include <stdio.h>

int fpurge(FILE *stream);

/* поддерживается */
#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() | Безвредность в нитях | MT-Safe race:stream

СООТВЕТСТВИЕ СТАНДАРТАМ
Эти функции нестандартны и не являются переносимыми. Функция fpurge() появилась из BSD 4.4 и отсутствует в Linux. Функция __fpurge() появилась из Solaris и включена в glibc начиная с версии 2.1.95.

ЗАМЕЧАНИЯ
Как правило, отбрасывать содержимое буферов ввода является ошибкой.

СМОТРИТЕ ТАКЖЕ
fflush(3), setbuf(3), stdio_ext(3)