你如何使用可选和非可选参数?

时间:2014-10-10 15:25:27

标签: c command-line

我理解如何使用getopt接受命令行参数,如

./program -a yes -b no

我目前要做的是接受命令行参数,其中一些是可选的,一些不是。

例如:

./program argv[1] argv[2] -a yes -b no

1 个答案:

答案 0 :(得分:0)

多个可选参数后的选项可能是个坏主意;如果你能提供帮助,就不要设计命令行语法。

也就是说,您可以在getopt之外自己解析参数,直到看到类似于选项的内容(同时递增argv并递减argc)。然后使用getopt作为该点上命令行的其余部分。

的伪代码:

for (; *argv; argc--, argv++) {
  if (argv looks like an option)
    break;

  process *argv somehow      
}

now process with getopt(argc, argv, ...)