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