[getopt
在Windows和Linux中的行为似乎有所不同。 Windows需要严格的参数排序,而在Linux中,我可以按任意顺序放置参数。考虑一个程序test
,该程序使用为Linux(gcc)和Windows(MinGW)编译的getopt
,并以以下命令行为例:
test file1.bin file2.bin -o output.txt
在Linux中执行此命令将正确解析-o output.txt
作为选项(+参数),无论我将-o output.txt
放在何处。它也可能在file1.bin
和file2.bin
之间,并且getopt
解析仍将正确进行,因为它通过将可选参数置于必填项的前面来对参数进行排序。
[在Windows]中执行此命令]但是会导致不正确的解析,使我在optind
变量中的索引错误。似乎在Windows中编译时完全相同的代码对我来说不起作用。为什么会这样,我们可以解决这个问题吗?
似乎getopt在Windows和Linux中的行为有所不同。 Windows需要严格的参数排序,而在Linux中,我可以按任意顺序放置参数。考虑一个程序测试,......>
根据要求将我的评论转移到答案。