3

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

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

知道为什么吗?

PS:Lua 版本 5.1.5

4

2 回答 2

4

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

尝试在cat > /dev/null.

于 2013-10-17T10:26:52.310 回答
2

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

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

于 2013-10-17T08:53:13.627 回答