Lua: io.read() 在长字符串上无法正常工作

以下命令在长度约为2000个字符的字符串上冻结:

lua -e 'print(io.read())'

有任何想法吗?

PS:Lua版本5.1.5

点赞
用户1009479
用户1009479

当没有参数调用 io.read 时,它使用默认格式 "*l",该格式读取下一行。底层缓冲区大小为 C 的 BUFSIZ,看起来你的输入字符串已经超过了这个限制。

将其更改为 io.read("*a") 以读取整个输入。记得在最后发送 EOF

2013-10-17 08:53:13
用户107090
用户107090

这很可能是底层操作系统中终端输入输出的限制. 在Lua的限制之前就已经实施了。

尝试在 cat >/dev/null 中输入一行很长的命令。

2013-10-17 10:26:52