以下命令在长度约为2000个字符的字符串上冻结:
有什么想法吗?
PS:Lua版本为5.1.5
lua -e 'print(io.read())'
有什么想法吗?
PS:Lua版本为5.1.5
这很可能是底层操作系统终端IO的限制,它会在达到Lua限制之前强制执行。
可以尝试在 cat > /dev/null
中输入一行较长的内容。
io.read
会使用默认格式 "*l"
,它会读取下一行。底层缓冲区大小是C的BUFSIZ
,看起来你的输入字符串已经超过了这个限制。io.read("*a")
可以读取整个输入。记得在最后发送EOF
。