gpt4 book ai didi

c - C/Unix 的参数解析助手

转载 作者:太空狗 更新时间:2023-10-29 16:20:48 25 4
gpt4 key购买 nike

我知道以下内容:

  • 可敬的getopt(3)
  • 扩展的getopt_long
  • glibc 的 argp Unix 风格参数 vector 的解析器
  • popt来自 GNOME 项目(或其在 Glib 中的精神继承者)

我敢肯定还有更多我没用过甚至没听说过的;快速谷歌搜索显示Gopt , argtable , 和 Optlist .

就我个人而言,我最喜欢 argp,我使用 getopt/getopt_long 编写的每个程序(超出了某个复杂性基准)转换为使用 argp。它比 popt 更广泛可用,比 getopt_long 更强大,文档齐全,符合所有 GNU 风格的约定,并且非常灵活。不利的一面是,它远非最容易使用(由于非常灵活),而且支持它的代码非常冗长(就像 C 中的许多东西一样)。

你用什么,为什么?

是的,我指的是 C 而不是 C++。有大量的 C++ 解析器,但我不使用 C++。

John Millikin 指出 popt 不再维护。我列出它是因为许多程序仍在使用它——包括 AbiWord、rpm、rsync 和 samba——尽管 Gnome 努力 migrate away .但我现在也添加了指向 Glib 的参数解析器的链接。


对于 C++ 参数解析,请参阅问题 What parameter parser libraries are there for C++?

最佳答案

GNU 有 gengetopt它为选项数据结构和 getopt_long 代码生成代码来解析命令行并填充结构。它相当容易学习并且运行良好。

作为奖励,您可以在代码周围传递选项结构,并在需要时避免全局存储。

它提供 GNU 风格的语义(显然),并且足够小,如果您不确定您的受众的构建环境,可以简单地包含在项目中进行分发。

关于c - C/Unix 的参数解析助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/189972/

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