eof — 채널의 파일 끝 조건 확인하기
eof — 채널의 파일 끝 조건 확인하기
파일을 끝까지 읽었는지, 아니면 아직 더 읽을 데이터가 남았는지 알아야 할 때가 있어요. Tcl에서 채널(channel)을 읽다 보면 언제 데이터가 끝났는지 구분이 필요해요. 그때 쓰는 명령이 eof예요.
출처: Tcl 공식 문서 — eof
본문
시그니처
eof channelId
설명
channelId에 대한 가장 최근 입력 연산(예: gets) 중에 파일 끝 조건이 발생했으면 1을, 아니면 0을 반환해요.
channelId는 표준 채널(stdin, stdout, stderr), open·socket 호출의 반환값, 또는 Tcl 확장이 제공한 채널 생성 명령의 결과처럼 열려 있는 채널의 식별자여야 해요.
예제
파일 내용을 한 줄씩 읽어 출력하는 예제예요:
set f [open somefile.txt]
while {1} {
set line [gets $f]
if {[eof $f]} {
close $f
break
}
puts "Read line: $line"
}
파일 내용을 고정 크기 레코드로 읽어 출력하는 예제예요:
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"
}
더 알아보기
file,open,close,fblocked,Tcl_StandardChannels- 키워드:
channel,end of file