需要有关如何设置getopt_long以正确传递命令行参数的建议

时间:2017-07-14 20:05:48

标签: c++ getopt command-line-parsing

民间, 我在这里讨论了使用get_opt_long的例子:https://linux.die.net/man/3/getopt_long_only 我仍然对如何利用我的情况感到困惑。我的情况有多种选择。

-Aa => ask for all
-As => ask for stats
-Af => ask for file
-seed => pass seed
-num => repeat times

我可以使用-seed和-num工作,但不知道如何合并-Ap,-Ax -Af

这是我的选项struct:

enter code here
{"seed"              , required_argument , NULL , 's'} , 
{"num"               , required_argument , NULL , 'n'} , 
{"ask_all"           , no_argument       , NULL , 'a'} , 
{"ask_stat"          , no_argument        , NULL ,  't'} , 
{NULL                , 0                 , NULL , 0}

另外,我如何使用-Ap,-As作为命令行参数。我强迫我的所有选择都使用unic字符。

我的while block

case 's':
  seed = atoi(optarg);
  break;
case 'n':
  num = atoi(num);
case 'a':
  ask->all = true;   
  break;

由于

1 个答案:

答案 0 :(得分:1)

两种可能的解决方案:

  1. "Aa""As""Af"
  2. 使用长参数
  3. 使用一个简短的参数'A',其中包含'a''s''f'字符所需的参数