【发布时间】:2015-11-25 09:06:53
【问题描述】:
我已经查看过这里提出的许多问题,我决定使用 unistd.h 来解决 getopt。
但是我需要某个选项依赖于以前的选项,如
exe -a a_opt -b b_bopt
-b 的作用是b_opt/a_opt
因此-a必须在-b之前被解析。
有没有办法实现这个?
谢谢
编辑:简单的方法是创建一个标志并在最后检查它,但是我正在尝试看看是否有更优雅的解决方案。
【问题讨论】:
我已经查看过这里提出的许多问题,我决定使用 unistd.h 来解决 getopt。
但是我需要某个选项依赖于以前的选项,如
exe -a a_opt -b b_bopt
-b 的作用是b_opt/a_opt
因此-a必须在-b之前被解析。
有没有办法实现这个?
谢谢
编辑:简单的方法是创建一个标志并在最后检查它,但是我正在尝试看看是否有更优雅的解决方案。
【问题讨论】:
不,真的没有这种方法可以仅使用 getopt 来强制执行参数顺序。
您可以做的是在getopt 向您返回-a 选项时设置一个标志,并在您获得-b 选项时检查该标志。
【讨论】:
在getopt 中,参数顺序没有意义。常见的方法是为getopt 设置一个大的switch case,它设置各种标志,然后您可以添加对标志的进一步依赖性检查。
【讨论】: