gpt4 book ai didi

我可以使用 getopt 按特定顺序处理选项吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:35:19 25 4
gpt4 key购买 nike

我正在实现一个命令行工具,我需要能够处理大量选项。某些选项在完成后必须终止程序。例如,我有选项 a、b 和 c。如果 a 和 b 在完成后终止,我给出命令

./myprogram -bca [file] 

有没有办法在这种情况下使用 getopt() 赋予“a”优先级?

编辑:

我通过在选项上运行一个开关并在选择了一个选项时设置一个标志来解决这个问题。然后将所有标志发送到按顺序查看标志的函数。

最佳答案

处理getopt()读取的选项主要有两种方式。一种是执行与选项关联的操作,因为 getopt() 在读取其余选项之前识别它;另一种是在进行任何处理之前阅读所有选项。 (程序并不少见地实现混合解决方案;一些选项在解析参数时执行,但其他选项只是简单地记录下来,并在处理参数后采取的操作。)

在您的情况下,您似乎需要在进行任何处理之前解析所有选项。如果 -a-b 在执行操作后都终止了程序,那么它们是互斥的选项,您应该将其诊断为程序的错误调用。您需要决定是否允许 -c 以及 -a-b

很多时候,您会有成对的选项需要一起工作,或者您需要知道在决定做什么之前是否指定了一个、另一个或两者。另一个需要考虑的问题是如果在命令行中重复一个选项意味着什么。

关于我可以使用 getopt 按特定顺序处理选项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26473642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com