2013-10-17 42 views

回答

4

這很可能是底層操作系統中終端IO的限制。它在達到Lua限制之前執行。

嘗試在cat > /dev/null輸入一個長行。

+0

你是完全正確的:輸入凍結,就像我的lua腳本一樣。非常感謝你! –

+0

@ChristianMüller如果它解決了您的問題,請接受該答案。 –

2

不帶參數調用,io.read使用默認格式"*l",它讀取下一行。底層緩衝區大小爲C的BUFSIZ,看起來您的輸入字符串已超過該限制。

將其更改爲io.read("*a")以讀取整個輸入。記得最後發送EOF

+0

謝謝!我嘗試過,但不幸的是它仍然凍結。我也意識到,該命令僅凍結沒有任何空格的字符串。只是一個隨機文本完美的作品。 –

+0

例如,當我嘗試輸入這個字符串時,我從來沒有從lua得到任何迴應:https://gist.github.com/anonymous/7021941 –

+1

@ChristianMüller我在我的機器上測試了您的示例字符串,並在http:// www.compileonline.com/executecute_lua_online.php,都可以正常工作。我猜在某個地方有一些隱藏的祕密。 –