gpt4 book ai didi

c - 可以拆分/级联 getopt_long 吗?

转载 作者:行者123 更新时间:2023-11-30 17:35:04 24 4
gpt4 key购买 nike

我有一个小型 C(不是 C++)应用程序,它使用 getopt_long 解析命令行参数。我想编写另一个应用程序,它共享许多元素(包括一些常见的命令行参数),但也有一些独特的东西。作为其中的一部分,我想将命令行解析分为常见的(在静态库中)和特定于应用程序的。

是否可以以某种方式级联调用具有不同选项集的 getopt_long ,这样,如果“外部”调用(特定于应用程序的选项)无法识别某个选项,它可以尝试调用通用选项选项解析器,不会向用户打印任何错误,除非两者都无法识别该选项?这必须在逐个选项的基础上完成,因为用户能够以任何顺序传递选项。

我喜欢 getopt 静态定义的常量选项查找表的简单性。我知道我可能可以动态生成一个合并表,然后只调用 getopt 一次,但这似乎更痛苦,我不想这样做。

到目前为止,我对文档的阅读看起来并不乐观。

最佳答案

然后我会考虑使用 argp来自 GNU libc 的 API。

Argp 解析器可以组合,参见the example 4 。因此,您可以将公共(public)部分放在一个解析器中(在您的共享库中),并将特定于应用程序的解析器放在另一个解析器中。

或者,也可以考虑Glib (来自 GTK,但可以独立使用)及其 command line option parsing (因为 GOptionContext-s 可以包含多个带有 g_option_context_add_group ... 的 GOptionGroup-s)

关于c - 可以拆分/级联 getopt_long 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23122367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com