要做一个正确的Linux/unix样式的应用程序,最好的选择是什么(例如。afaik使用getopt_long,但例如ffmpeg getopt_long_only)。你推荐哪一种?
干杯,
发布于 2010-03-15 03:54:48
在我看来,以下情况通常是正确的:
如果一个程序变得足够大,它最终将耗尽与规范选项相比具有任何意义的短期期权组合。例如,-Z可能与以完全不同的字母开头的长选项相同。在这一点上,特别是对于单个维护人员来说,选项解析代码的维护变得很麻烦。
当这种情况发生时,你有几个选择:
把不同的地方混在一起,你就会真正开始感受到痛苦。
当我坐下来编写一个需要很多选项的工具时,我通常做的第一件事就是编写代码来解析参数,这有助于规划程序的流程,并成为一个大纲。在那之后,你只需让每一个选项都发挥作用。
换句话说,如果你的选择变成了一种慢性的痛苦,这通常意味着一个项目的发展很快超出了它的计划。
无论如何,为了结束我的长篇大论的回答,通常最好尽可能保持compat ()行为。从用户那里获得指令的代码仅仅是做生意的成本,所以您应该完全关注如何在可能的情况下提供更好的用户体验。
发布于 2010-03-15 03:32:46
对于“适当的gnu/linux风格”,您应该使用getopt_long(),并为大多数选项提供长选项(有时只提供长选项)。大多数命令行接口都遵循这一点。
发布于 2010-02-03 14:34:00
都不是。用户可以是argp_parse还是libpopt。
https://stackoverflow.com/questions/2192605
复制相似问题