---
name: "tell"
section: "n"
platform: "macos"
package: "tcl"
version: "152"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/tell/n"
---

# tell(n)

Return current access position for an open channel

## NAME

tell - Return current access position for an open channel

## SYNOPSIS

**tell** *channelId*

## DESCRIPTION

Returns an integer string giving the current access position in *channelId*.  This value returned is a byte offset that can be passed to **seek** in order to set the channel to a particular position.  Note that this value is in terms of bytes, not characters like **read**. The value returned is -1 for channels that do not support seeking.

*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.

## EXAMPLE

Read a line from a file channel only if it starts with **foobar**: # Save the offset in case we need to undo the read... set offset \[**tell** $chan\] if {\[read $chan 6\] eq "foobar"} {\
     gets $chan line } else {\
     set line {}\
     \# Undo the read...\
     seek $chan $offset }

## SEE ALSO

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

## KEYWORDS

access position, channel, seeking
