如何将新分配的 C 结构与 Lua 创建的对象关联,并在 Lua 对象关闭 / 垃圾回收时自动释放它

假设我有一个使用 io.open/io.popen 创建的 Lua 对象,是否有一种方式可以通过调用 Lua 中的某些由 C 定义的函数来将 C 结构与它绑定,并将新分配的结构保留下来呢? 我想这样做的目的是希望在 Lua 对象关闭或垃圾回收时保留那个新分配的结构,并在那时自动释放 C 结构。 我一直在阅读关于元方法的文章,但我不确定是否想要覆盖默认对象行为(也许只是添加一个额外的函数?)或者这是否是实现上述目标的正确方法。 任何关于如何实现这一点的帮助 / 提示都将不胜感激!

原文链接 https://stackoverflow.com/questions/71197920

点赞