我正在用 C 语言编写一个处理大量命令行参数的小程序,因此我决定使用 getopt 为我对它们进行排序。
但是,我希望两个非选项参数(源文件和目标文件)是强制性的,因此在调用程序时必须将它们作为参数,即使没有标志或其他参数。
这是我必须处理带有标志的参数的简化版本:
while ((c = getopt(argc, argv, "i:d:btw:h:s:")) != -1) {
switch (c) {
case 'i': {
i = (int)atol(optarg);
}
case 'd': {
d = (int)atol(optarg);
}
case 'b':
buf = 1;
break;
case 't':
time = 1;
break;
case 'w':
w = (int)atol(optarg);
break;
case 'h':
h = (int)atol(optarg);
break;
case 's':
s = (int)atol(optarg);
break;
default:
break;
}
}
如何编辑它以便也处理非选项参数?
我还希望能够在选项之前或之后拥有非选项,那么如何处理呢?