read(3tcl) Tcl Built-In Commands read(3tcl)

read - 从一个通道读

read ?-nonewline? channelId

read channelId numChars

在第一种形式下,read 命令从 channelId 读出直到文件结束的所有数据。如果指定了 -nonewline 开关,那么文件的最后一个字符要是换行的话则丢弃它。 在第二种情况下,额外的参数指定要读多少个字符。 实际上就读取并返回这么多字符,除非在文件中剩下的字符少于 numChars ;在这种情况下返回所有剩余的字符。如果通道被配置成使用多字节编码,则读的字符数可能与读的字节数不相同。

如果 channelId 在非阻塞模式下,这个命令读的字符可能不象要求的那样多: 一旦所有可获得的输入已经被读取了,这个命令将返回这些可获得的数据,而不是为得到更多数据而阻塞。如果通道被配置成使用多字节编码,则实际上可能有一些字节因为不能形成一个完整的字符而保留在内部缓冲区中。一直等到可获得一个完整的字符或到达文件结束,此前不返回这些字节。 如果命令在到达文件结束之前返回则忽略 -nonewline 开关。

Read 依照给通道的 -translation 选项把输入中的行结束转换成换行字符。参见 fconfigure 手册条目来得到关于 fconfigure 如何改变输入的一个讨论。

file(n), eof(n), fblocked(n), fconfigure(n)

blocking, channel, end of line, end of file, nonblocking, read, translation, encoding

寒蝉退士

2001/10/18

http://cmpp.linuxforum.net

本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh
8.1 Tcl