应用程序应如何从 cmdline args 解析文件名列表?

How should an application parse a list of filenames from cmdline args?

我想编写一个应用程序,my_app,它从命令行获取命名选项列表和文件名列表,例如,

% my_app --arg_1 arg_1_value filename_1 filename_2

文件名是最后一个参数,与任何命名选项无关。

从 cmdline 解析器,例如 Golang 中的 flag,我已经工作过,似乎解析器只会提取配置的参数,而且我' d 需要通过遍历原始 argv[] 列表来手动识别文件名列表。

我想问一下是否有解析器(或我可能忽略的选项)也可以提取这些文件名,或者它们只 return 未处理的参数,因此,我可以假设这些是文件名。

Golang flag 模块使尾随参数可用作切片 flag.Args,这是 os.Args.

的尾随部分

这是命令行参数解析器的一种非常典型的工作方式,尽管细节会因语言而异。例如,标准 C 库参数解析器提供全局 optind,这是第一个非标志参数 argv 中的索引。