我知道以下情况:
- 尊者
getopt(3)
- 扩展的
getopt_long
- glibc's argp http://www.gnu.org/software/libtool/manual/libc/Argp.htmlUnix 风格参数向量的解析器
-
popt http://developer.gnome.org/arch/misc/popt.html来自 GNOME 项目(或其精神继承者Glib http://library.gnome.org/devel/glib/stable/glib-Commandline-option-parser.html)
我确信还有更多我没有使用过或什至听说过的;谷歌快速搜索显示Gopt http://www.purposeful.co.uk/software/gopt/, argtable http://argtable.sourceforge.net/, and Optlist http://michael.dipperstein.com/optlist/.
就我个人而言,我喜欢argp
最好的,以及我用它编写的每个程序getopt
/getopt_long
(超出一定的复杂性基线)已转换为使用argp
。它的应用范围比popt
, 比getopt_long
,文档齐全,符合所有 GNU 风格的约定,并且非常灵活。缺点是,它远不是最容易使用的(由于它非常灵活),而且支持它的代码非常冗长(C 中的许多东西也是如此)。
你用什么,为什么?
是的,我指的是 C 而不是 C++。有大量的 C++ 解析器,但我不使用 C++。
约翰·米利金指出popt
不再维护。我列出它是因为许多程序仍在使用它——包括 AbiWord、rpm、rsync 和 samba——尽管 Gnome 努力迁移走 http://live.gnome.org/ProjectRidley。但我现在也添加了 Glib 参数解析器的链接。
对于 C++ 参数解析,请参阅问题C++ 有哪些参数解析器库? https://stackoverflow.com/questions/253556/what-parameter-parser-libraries-are-there-for-c
GNU has 根格托普 http://www.gnu.org/software/gengetopt/它生成选项数据结构的代码和getopt_long
代码来解析命令行并填充结构。它相当容易学习并且运行良好。
作为奖励,您可以在代码周围传递选项结构,并根据需要避免全局存储。
它提供了 GNU 风格的语义(显然),并且足够小,如果您不确定受众的构建环境,可以简单地包含在项目中进行分发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)