【发布时间】:2011-04-25 17:55:09
【问题描述】:
我的论点是这样的
./a.out -i file1 file2 file3
如何利用getopt() 获取3 个(或更多)输入文件?
我正在做这样的事情:
while ((opt = getopt(argc, argv, "i:xyz.."))!= -1){
case 'i':
input = optarg;
break;
...
}
我只得到file1;如何获得file2、file3?
【问题讨论】:
-
请注意,Supplying two arguments to command line option using
getopt()问题提供了一些此处未提及的可能性。 -
在程序代码中调整
optind下面的答案如履薄冰。如果您在调用代码中修改optind或optarg,则没有记录要求getopt()的行为。当然,大多数当前和合理的实现不会有问题,但是假设的实现可以在非全局变量中记录其内部状态,并在返回时简单地设置全局变量。这样的实现将满足getopt()的 POSIX 规范,但显示的修补不起作用。