---
name: "EOF"
section: "3const"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/EOF/3const"
---

# EOF(3const)

end of file or error indicator

## NAME

EOF - end of file or error indicator

## LIBRARY

Standard C library (*libc*)

## SYNOPSIS

```
#include <stdio.h>
```

**#define EOF**  /\* ... \*/

## DESCRIPTION

**EOF** represents the end of an input file, or an error indication. It is a negative value, of type *int*.

**EOF** is not a character (it can't be represented by *unsigned char*). It is instead a sentinel value outside of the valid range for valid characters.

## STANDARDS

C11, POSIX.1-2024.

## HISTORY

C89, POSIX.1-1988.

## CAVEATS

Programs can't pass this value to an output function to "write" the end of a file. That would likely result in undefined behavior. Instead, closing the writing stream or file descriptor that refers to such file is the way to signal the end of that file.

## SEE ALSO

[**feof**(3)](/feof/3.md), [**fgetc**(3)](/fgetc/3.md)
