__fpurge(3) вычищает поток

Other Alias

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.

ЗАМЕЧАНИЯ

Как правило, отбрасывать содержимое буферов ввода является ошибкой.