首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getopt_long对getopt_long_only

getopt_long对getopt_long_only
EN

Stack Overflow用户
提问于 2010-02-03 14:29:57
回答 4查看 3K关注 0票数 4

要做一个正确的Linux/unix样式的应用程序,最好的选择是什么(例如。afaik使用getopt_long,但例如ffmpeg getopt_long_only)。你推荐哪一种?

干杯,

EN

回答 4

Stack Overflow用户

发布于 2010-03-15 03:54:48

在我看来,以下情况通常是正确的:

  • 用户喜欢长而自然的语言选项,因为它们很容易记住。
  • 那些编写脚本来包装有数百个选项的程序的用户喜欢短选项。

如果一个程序变得足够大,它最终将耗尽与规范选项相比具有任何意义的短期期权组合。例如,-Z可能与以完全不同的字母开头的长选项相同。在这一点上,特别是对于单个维护人员来说,选项解析代码的维护变得很麻烦。

当这种情况发生时,你有几个选择:

  • 使用类似于根盖托普的东西从模板中为您编写代码
  • 只使用长选项(通常是个坏主意)
  • 尝试将你的程序减少到52个选项(A)(通常是个坏主意)。
  • 在短选项变成不带参数的开关的情况下,实现选项,对不使用参数的选项使用长选项
  • 一系列其他的方法,对你来说是完全合理的,对用户来说则没有什么意义。

把不同的地方混在一起,你就会真正开始感受到痛苦。

当我坐下来编写一个需要很多选项的工具时,我通常做的第一件事就是编写代码来解析参数,这有助于规划程序的流程,并成为一个大纲。在那之后,你只需让每一个选项都发挥作用。

换句话说,如果你的选择变成了一种慢性的痛苦,这通常意味着一个项目的发展很快超出了它的计划。

无论如何,为了结束我的长篇大论的回答,通常最好尽可能保持compat ()行为。从用户那里获得指令的代码仅仅是做生意的成本,所以您应该完全关注如何在可能的情况下提供更好的用户体验。

票数 6
EN

Stack Overflow用户

发布于 2010-03-15 03:32:46

对于“适当的gnu/linux风格”,您应该使用getopt_long(),并为大多数选项提供长选项(有时只提供长选项)。大多数命令行接口都遵循这一点。

票数 2
EN

Stack Overflow用户

发布于 2010-02-03 14:34:00

都不是。用户可以是argp_parse还是libpopt。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2192605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档