tell — 열린 채널의 현재 접근 위치 반환하기
tell — 열린 채널의 현재 접근 위치 반환하기
파일을 읽다가 위치를 되돌리고 싶거나, 나중에 다시 그 지점으로 돌아가야 할 때가 있어요. tell은 열린 채널에서 지금 읽기/쓰기 위치가 어디인지 알려주는 명령이에요.
출처: Tcl 공식 문서 - tell
본문
tell channelId
tell은 channelId에서 현재 접근 위치를 나타내는 정수 문자열을 반환해요. 반환된 값은 바이트 오프셋이라서, 채널을 특정 위치로 설정하기 위해 seek에 넘길 수 있어요. read처럼 문자 단위가 아니라 바이트 단위라는 점에 주의하세요. 탐색(seeking)을 지원하지 않는 채널에 대해서는 -1을 반환해요.
channelId는 열린 채널의 식별자여야 해요. Tcl 표준 채널(stdin, stdout, stderr), open이나 socket 호출의 반환 값, 또는 Tcl 확장이 제공하는 채널 생성 명령의 결과가 될 수 있어요.
예제
파일 채널에서 한 줄을 읽을 때, 그 줄이 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
}