---
name: "eof"
section: "n"
platform: "linux"
package: "tcl"
version: "8.6.16-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/eof/n"
---

# eof(n)

Check for end of file condition on channel

```

```

## NAME

eof - Check for end of file condition on channel

## SYNOPSIS

**eof** *channelId*

```

```

## DESCRIPTION

Returns 1 if an end of file condition occurred during the most recent input operation on *channelId* (such as **gets**), 0 otherwise.

*ChannelId* must be an identifier for an open channel such as a Tcl standard channel (**stdin**, **stdout**, or **stderr**), the return value from an invocation of **open** or **socket**, or the result of a channel creation command provided by a Tcl extension.

## EXAMPLES

Read and print out the contents of a file line-by-line:

```
set f [open somefile.txt]
while {1} {
    set line [gets $f]
    if {[eof $f]} {
        close $f
        break
    }
    puts "Read line: $line"
}
```

Read and print out the contents of a file by fixed-size records:

```
set f [open somefile.dat]
fconfigure $f -translation binary
set recordSize 40
while {1} {
    set record [read $f $recordSize]
    if {[eof $f]} {
        close $f
        break
    }
    puts "Read record: $record"
}
```

## SEE ALSO

[file(n)](/file/n.md), [open(n)](/open/n.md), [close(n)](/close/n.md), [fblocked(n)](/fblocked/n.md), [Tcl\_StandardChannels(3)](/Tcl_StandardChannels/3.md)

## KEYWORDS

channel, end of file
