io.stdin:seek()的预期行为是什么?

在 Lua 的文档中,调用文件对象的 :seek() 方法应该返回已经通过文件读取了多少数据。然而,当我在标准输入上调用这个方法时,它并不会返回一致的数字。

当我打开终端并运行 Lua REPL 并执行 io.stdin:seek() 时,我会得到随机数字。在一个选项卡中,我可能会得到:

Lua 5.2.0  Copyright (C) 1994-2011 Lua.org, PUC-Rio
> =io.stdin:seek()
2091

在另一个选项卡中,我可能会得到:

Lua 5.2.0  Copyright (C) 1994-2011 Lua.org, PUC-Rio
> =io.stdin:seek()
486

是什么原因解释了在 stdin 上调用 seek() 会返回一个似乎与 Lua 收到的输入量无关的数字呢?

还有,我还能以其他方式检索已经通过 stdin 读取了多少数据吗?

点赞