【发布时间】:2011-10-27 08:46:40
【问题描述】:
到目前为止,我一直在使用 getopt_long 来解析命令行 C 程序的选项。
有没有办法在遇到非选项参数时停止 getopt_long 解析?如果没有,在 C 中处理这个问题的最佳方法是什么?
举个例子,我想以与git 类似的方式处理命令,并在命令之前有一般参数,在命令之后有特定于命令的参数:
git [general options] <command> [command options]
例如:
git --bare commit -a
git -p --bare status -s
-p 和--bare 是通用选项,可用于所有命令,而-a 特定于commit 命令,-s 特定于status 命令。
使用getopt_long 将首先尝试解析所有选项,然后将非选项参数留待处理。理想情况下,我希望在遇到非选项(即命令)后停止解析,然后将剩余的参数传递给特定于命令的选项解析器。
【问题讨论】:
标签: c command-line command-line-arguments getopt