我正在实现一个命令行工具,并且我需要能够处理一堆选项。某些选项完成后必须终止程序。例如我有选项a、b和c。如果 a 和 b 在完成后终止,并且我发出命令
./myprogram -bca [file]
在这种情况下,有没有办法使用 getopt() 给予“a”优先权?
EDIT:
我通过在选项上运行开关并在选择选项时设置一个标志来解决这个问题。然后将所有标志发送到按顺序查看标志的函数。
处理读取的选项主要有两种方式getopt()
。一种是执行与选项相关的操作:getopt()
在阅读其余选项之前先识别它;另一种是在进行任何处理之前读取所有选项。 (程序经常实现混合解决方案;某些选项在解析参数时执行,但其他选项则简单地注明,并在处理参数后采取操作。)
在您的情况下,您似乎需要在进行任何处理之前解析所有选项。如果两者都-a
and -b
执行该操作后终止程序,那么它们是互斥的选项,您可能应该将其诊断为程序的错误调用。您需要决定是否可以允许-c
以及-a
or -b
.
很多时候,您会遇到需要一起工作的成对选项,或者您需要知道在决定做什么之前是否已指定其中一个、另一个或两者。另一个需要考虑的问题是,如果一个选项在命令行上重复,它意味着什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)