---
name: "fpurge"
section: "3bsd"
platform: "linux"
package: "libbsd"
version: "0.12.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/fpurge/3bsd"
---

# fpurge(3bsd)

flush a stream

## NAME

**fpurge** – flush a stream

## LIBRARY

library “libbsd”

## SYNOPSIS

**#include \<stdio.h\>**

(See [libbsd(7)](/libbsd/7.md) for include usage.)

*int*\

**fpurge**(*FILE \*stream*);

## DESCRIPTION

The function **fpurge**() erases any input or output buffered in the given *stream*. For output streams this discards any unwritten output. For input streams this discards any input read from the underlying object but not yet obtained via [getc(3)](/getc/3.md); this includes any text pushed back via [ungetc(3)](/ungetc/3.md).

## RETURN VALUES

Upon successful completion 0 is returned. Otherwise, EOF is returned and the global variable *errno* is set to indicate the error.

## ERRORS

- \[EBADF\]

  *stream* is not an open stream.

## SEE ALSO

[fclose(3)](/fclose/3.md), [fopen(3)](/fopen/3.md), [setvbuf(3)](/setvbuf/3.md)

## HISTORY

The **fpurge**() function first appeared in 4.4BSD-Lite.
