tell - Man Page

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), open(n), close(n), gets(n), seek(n), Tcl_StandardChannels(3)

Keywords

access position, channel, seeking

Referenced By

chan(n), file(n), seek(n).

8.1 Tcl Built-In Commands