---
name: "eof"
section: "n"
platform: "macos"
package: "tcl"
version: "152"
release: "macOS 26.5"
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
