## Tcl8.6.17/Tk8.6.17 Documentation > Tcl Commands > gets

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

### NAME

gets — 通信路から一行読む Read a line from a channel

### 構文 SYNOPSIS

gets channelId ?varName?

### 説明 DESCRIPTION

この命令は channelId から次の行を読み､行末記号迄の行中の全て(但し行末記号を含まずに)を返し､行末記号を遺棄する｡ 　　 This command reads the next line from channelId, returns everything in the line up to (but not including) the end-of-line character(s), and discards the end-of-line character(s).

通信路識別子 channelId は､Tcl 標準入力通信路(stdin)､又は､ open か socket の起動からの返り値､又は､Tcl 拡張によってもたらされた通信路生成命令の結果の様な､開ける通信路に関する識別子でなければならない｡その通信路は入力の為に開かれてなければならない｡ ChannelId must be an identifier for an open channel such as the Tcl standard input channel (stdin), the return value from an invocation of open or socket, or the result of a channel creation command provided by a Tcl extension. The channel must have been opened for input.

もし､ varName が省略されていると､命令の結果としてその行が返される｡もし varName が指定されていると､その名前の変数の中にその行が置かれ､命令の返り値は､返される文字の個数になる｡ 　　　 If varName is omitted the line is returned as the result of the command. If varName is specified then the line is placed in the variable by that name and the return value is a count of the number of characters returned.

行末を調査している間にファイル終末が生じると､この命令は､何であれファイル終末迄の利用可能な入力を返す｡もし､ channelId が非同期方法で､利用できる入力が一行に満たない場合､命令は空文字列を返し､如何なる入力も消費しない｡ファイル終末の理由或は､非同期方法で不十分なデータの理由で､ varName が指定され varName 中に空文字列が返ると､返り値は-1になる｡註意すべきは､もし､ varName が指定されなく､ファイル終末と利用可能の行不足の場合に､恰も､終末行記号のみを含む行であるかのような同じ結果になることがある｡ eof と fblocked 命令がこれら三つの場合を区別する為に使用できる｡ 　　　 If end of file occurs while scanning for an end of line, the command returns whatever input is available up to the end of file. If channelId is in non-blocking mode and there is not a full line of input available, the command returns an empty string and does not consume any input. If varName is specified and an empty string is returned in varName because of end-of-file or because of insufficient data in non-blocking mode, then the return count is -1. Note that if varName is not specified then the end-of-file and no-full-line-available cases can produce the same results as if there were an input line consisting only of the end-of-line character(s). The eof and fblocked commands can be used to distinguish these three cases.

### 用例 EXAMPLE

この例は､一回毎にファイルから一つの行を読み､それに､現在の行番号を各行の先頭に附けて印刷する｡ 　　 This example reads a file one line at a time and prints it out with the current line number attached to the start of each line.

    set chan [open "some.file.txt"]
    set lineNumber 0
    while {[gets $chan line] >= 0} {
        puts "[incr lineNumber]: $line"
    }
    close $chan

### SEE ALSO

file, eof, fblocked, Tcl_StandardChannels

### KEYWORDS

blocking, channel, end of file, end of line, line, non-blocking, read
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.