Нужны предложения о том, как настроить getopt_long для правильной передачи аргументов командной строки

Люди, я рассмотрел пример использования 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

вот мой вариант структуры:

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 в качестве аргумента командной строки. Я вынужден использовать уникальный символ для всех моих вариантов.

мой блок пока

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

Спасибо

1 ответ

Два возможных решения:

  1. Используйте длинные аргументы для "Aa", "As" а также "Af"
  2. Используйте один короткий аргумент 'A' который принимает обязательный аргумент, который является 'a', 's' или же 'f' персонаж
Другие вопросы по тегам