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(). См. также fflush(3).

Функция __fpurge() делает то же самое, но не возвращает никакое значение.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
При успешном завершении fpurge() возвращает 0. При ошибке она возвращает -1 и устанавливает соответствующим образом errno.

НАЙДЕННЫЕ ОШИБКИ

EBADF
    stream не является открытым потоком.

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

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

СМ. ТАКЖЕ
fclean(3), fflush(3), setbuf(3), stdio_ext(3)