Lua 的文件句柄/流/文件流的规范/标准名称是什么?

What is the canon/standard name for file handle/stream/file stream of Lua?

提问人:kietfsek 提问时间:6/15/2023 最后编辑:kietfsek 更新时间:6/15/2023 访问量:64

问:

我注意到返回的东西的称呼不同。我想知道教规名称是什么。io.open()

  • 在 Lua 5.4 参考手册中,它被称为“文件句柄”。
  • 在“Programming in Lua” 4/e 中,它被称为“流”。
  • 我在 Lua 用户 Wiki 中看到的称为“文件流”(也许不是该 Wiki 中使用的唯一名称)

Lua 参考手册应该是官方的,但这本书是由该语言的创造者编写的,所以两者都应该是正典,但它们使用不同的名称。

如果有的话,它的规范/标准名称是什么?任何人都可以提供信息吗?提前致谢。

文件 Lua IO 句柄

评论

3赞 Oka 6/15/2023
用于描述 Lua 的语言受其参考实现语言 C 的影响,而 C 语言又与 Unix 紧密相连。如果你想深入研究兔子洞,一切都是一个文件,特别是 §7.19 C99 标准的输入/输出是开始了解流和文件概念是如何混合的好地方。
1赞 koyaanisqatsi 6/16/2023
并且 (@kietfsek) 您在枚举中忘记/监督:;-) - 也许我们可以说:文件处理程序是字节流的文件描述符 - 因此我认为可以使用它们来描述“All is a descriptor”的东西。File descriptor

答:

3赞 lhf 6/15/2023 #1
Lua 5.4.6  Copyright (C) 1994-2023 Lua.org, PUC-Rio
> io.stdin
file (0x7fff90c0bd90)

这就是参考手册讨论文件句柄的原因。句柄是指向抽象对象的不透明指针。 表格也是如此:

> {}
table: 0x7f86056042d0

但是您不必担心这些细节。 Lua 编程中的术语可能是为具有不同背景的受众选择的,但我不代表作者。

评论

0赞 kietfsek 6/26/2023
该实现可能使用 C 函数,我想知道的事情可能是 C 函数中的(或): ''' Lua 5.4.6 版权所有 (C) 1994-2023 Lua.org, PUC-Rio > io.stdin 文件 (0x7f88a44479c0) > type(io.stdin) userdata ''' 猜猜它没有标准名称,因为当一个人用 Lua 编码时,他们不需要专门命名这个东西就可以使用它。虽然参考文献更多地谈论技术细节,因此它更多地反映了底层实现,而这本书是针对初学者的,为了教育而解释事情。FILEFILE *