Lua:io.read()不适用于长字符串

时间:2013-10-17 08:37:44

标签: io lua

以下命令冻结了一个长度大约为2000个字符的字符串:

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

知道为什么吗?

PS:Lua版本5.1.5

2 个答案:

答案 0 :(得分:4)

这很可能是底层操作系统中终端IO的限制。它在达到Lua限制之前强制执行。

尝试在cat > /dev/null输入一个长行。

答案 1 :(得分:2)

当不带参数调用时,io.read使用默认格式"*l",它会读取下一行。底层缓冲区大小为C BUFSIZ,您的输入字符串似乎已超出该限制。

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