最近一直在Linux下写程序,命令行参数一般都是手动写程序分析处理,特别麻烦而求代码也很乱。最近发现有getopt()可以帮助进行参数分析,方便了很多。但是发现一个问题,getopt()每个选项只能用optarg获得一个参数,要是想要获得两个以上的参数就没办法了。在网上查了以下也没有什么特别好的办法。虽然getopt_long()可以获得多个参数,但是这个函数需要的参数太多了,不喜欢用。后来看了以下getopt的介绍自己想出了一个办法,看着还不错。分享1下,如果你也想到了这种方法,纯属有缘哈。
先粘上getopt的介绍,获取两个以上参数的方法写在后面。
函数说明 getopt()用来分析命令行参数。参数argc和argv分别代表参数个数和内容,跟main()函数的命令行参数是一样的。参数 optstring为选项字符串, 告知 getopt()可以处理哪个选项以及哪个选项需要参数,如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果在处理期间遇到了不符合optstring指定的其他选项getopt()将显示一个错误消息,并将全域变量optarg设为“?”字符,如果不希望getopt()打印出错信息,则只要将全域变量opterr设为0即可。