---
name: "eof"
section: "3tcl"
platform: "linux"
package: "tcl8.6-doc"
version: "8.6.16+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/eof"
---

# eof(3tcl)

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(3tcl)](/file/3tcl.md), [open(3tcl)](/open/3tcl.md), [close(3tcl)](/close/3tcl.md), [fblocked(3tcl)](/fblocked/3tcl.md), [Tcl\_StandardChannels(3tcl)](/Tcl_StandardChannels/3tcl.md)

## KEYWORDS

channel, end of file
