帮助找到C示例代码以读取lua命令行参数

Bor*_*ris 1 c lua sample

我在C中寻找示例代码,它读取Lua命令行参数.有帮助吗?

RBe*_*eig 5

Lua解释器旨在嵌入托管应用程序.应用程序有责任通过某种适当的机制将任何命令行参数(或应用程序的等效参数)传递给脚本.

当用作独立语言时,托管应用程序是可执行文件lua,由lua.cLua源代码分发实现.

当它开始时,将lua任何和所有命令行参数arg以数组的形式捆绑到全局变量中.arg[0]包含正在执行的脚本文件的名称,以及arg[1]稍后包含在命令行上传递给该脚本的任何参数.它还将命令行的余额存储在表中的负索引处arg.对于该命令lua sample.lua a b c,数组的构造就像赋值一样

arg = { [-1]="lua", [0]="sample.lua", "a", "b", "c" }

在脚本执行之前执行.此赋值由函数执行,该函数getargs()还将脚本参数保留在Lua堆栈上,以便脚本也可以通过...关键字将其作为可变参数访问脚本的顶级函数.

如果从脚本中使用的任何模块需要访问命令行参数,那么它很可能会从全局arg表中执行此操作.这将决定模块是用C还是Lua编写的.访问全局arg要求模块的环境未被更改以阻止访问全局变量.

我打开了一个重要的整体设计问题,即允许模块依赖于命令行参数是否是一个好的设计.我可以看到提供参数解析的模块可能希望以这种方式执行操作,但即便如此,我仍然建议选项解析器由其调用者传递给argments而不是直接从全局读取它们.例如,这样可以更容易地从环境变量或配置文件中检索参数.