以下练习中gets
命令的返回值是什么意思?
我尝试在命令行上通过file
阅读tclsh
。
10 2 12 1 13
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4a 5
% set fp [open file r]
file4
% gets $fp line
45
% gets $fp line
42
% gets $fp line
41
% gets $fp line
42
% gets $fp line
-1
% close $fp
当我得到-1
输出时,我关闭了文件指针$fp
。但是值45 42 41 42
意味着什么?
答案 0 :(得分:3)
从gets
命令的man页面引用
语法:
获取channelId?varName?
此命令从channelId读取下一行,返回所有内容 最后一行(但不包括)行尾字符的行,和 丢弃行尾字符。
如果指定了varName,则在varName中返回一个空字符串 因为文件结束或非阻塞数据不足 模式,然后返回计数为-1。
如果省略varName,则返回该行作为结果 命令。如果指定了varName,那么该行将放在 由该名称变量,返回值是数量的计数 字符返回。
从手册页中可以看到,它返回gets
命令在一行中读取的字符数。
在文件的第一行,它读取45个字符并返回45作为结果,字符串值将根据您的代码存储在变量line
中。
对所有行重复此操作,并在达到该文件的eof
后返回-1。