标签存档: getopt

getopt系列函数会重新排序argv

getopt这个东西就不多说了,讲这个有点拉低咱水平了。 直接讲重点,GNU在实现getopt等函数的时候做了个个人觉得有点画蛇添足的功能。就是在循环调用时候最后返回-1后会有可能会重新排列argv选项的顺序,他会把“不包含选项的命令行参数”挪到后面去。也就是./a.out -a ima -b host -ckeke -d haha会变成相当于./a.out -a -b host -ckeke -d ima haha的样子 所以如果选项里有一部分需要自己处理的话就没准会变得很恶心。 而optstring最前面加‘+’虽然使得argv不会被重排序,处理方式类同unix,遇到非选项的参数会停止解析 …

继续阅读 »